当前位置:   article > 正文

easyx图形编辑--键盘操作_easyx键盘输入

easyx键盘输入

 (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

今天我们来学一下如何在easyx窗口中使用键盘操作

用于接收键盘信息的函数有两个:

getch()                  //需要包含头文件<conio.h>

GetAsyncKeyState()  //需要包含头文件<windows.h>

然后就是easyx的常规三步走

initgraph(1000, 640, SHOWCONSOLE);//创建一个窗口
setbkcolor(WHITE);//设置窗口颜色
cleardevice();//刷新一下,防止窗口颜色不变 

 首先我们要绘制一个可以被操控的变量,这里我们以圆形为例

先绘制一个圆,指明其坐标以及大小

int x = 0;

int y = 0;

setfillcolor(BLACK);
fillcircle(x, y, 50); 

接下来就需要引入控制函数了,我们先讲一下getch()

首先创建一个字符串变量

char key = _getch();//vs2022要求getch前面要加下划线,如果不是vs则不用加

然后用Switch接收按键信息,我们就以常规的‘w’,'s','a','d'为例

  1. switch (key)
  2. {
  3. case 'w':
  4. printf("上键");
  5. y -= 50;
  6. break;
  7. case 's':
  8. printf("下键");
  9. y += 50;
  10. break;
  11. case 'a':
  12. printf("左键");
  13. x -= 50;
  14. break;
  15. case 'd':
  16. x += 50;
  17. printf("右键");
  18. break;
  19. }

接下来我们讲一下GetAsyncKeyState(),相比于上一个操作系统,这个显得更为流畅丝滑,因为它甚至可以斜着移动

  1. if (GetAsyncKeyState(VK_UP))//上键
  2. {
  3. y -= 50;
  4. }
  5. if (GetAsyncKeyState(VK_DOWN))//下键
  6. {
  7. y += 50;
  8. }
  9. if (GetAsyncKeyState(VK_LEFT))//左键
  10. {
  11. x -= 50;
  12. }
  13. if (GetAsyncKeyState(VK_RIGHT))//右键
  14. {
  15. x += 50;
  16. }

圆在移动的时候会留下轨迹,所以我们需要刷新一下

cleardevice(); 

最后别忘了将其放置在循环之中便于操作 ,整体效果如下:

  1. while (1)
  2. {
  3. cleardevice();
  4. //控制球
  5. setfillcolor(BLACK);
  6. fillcircle(x, y, 50);
  7. if (GetAsyncKeyState(VK_UP))//上键
  8. {
  9. y -= 50;
  10. }
  11. if (GetAsyncKeyState(VK_DOWN))//下键
  12. {
  13. y += 50;
  14. }
  15. if (GetAsyncKeyState(VK_LEFT))//左键
  16. {
  17. x -= 50;
  18. }
  19. if (GetAsyncKeyState(VK_RIGHT))//右键
  20. {
  21. x += 50;
  22. }
  23. char key = _getch();
  24. switch (key)
  25. {
  26. case 'w':
  27. printf("上键");
  28. y -= 50;
  29. break;
  30. case 's':
  31. printf("下键");
  32. y += 50;
  33. break;
  34. case 'a':
  35. printf("左键");
  36. x -= 50;
  37. break;
  38. case 'd':
  39. x += 50;
  40. printf("右键");
  41. break;
  42. }
  43. }

 末尾就是细节三步了

getchar();//防止闪退
closegraph();//关闭窗口
return 0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/94085
推荐阅读
相关标签
  

闽ICP备14008679号