easyx图形编辑--键盘操作

简介: easyx图形编辑--键盘操作

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

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

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

getch()                  //需要包含头文件
GetAsyncKeyState()  //需要包含头文件

然后就是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'为例

switch (key)
    {
    case 'w':
      printf("上键");
      y -= 50;
      break;
    case 's':
      printf("下键");
      y += 50;
      break;
    case 'a':
      printf("左键");
      x -= 50;
      break;
    case 'd':
      x += 50;
      printf("右键");
      break;
    }

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

        if (GetAsyncKeyState(VK_UP))//上键
    {
      y -= 50;
    }
    if (GetAsyncKeyState(VK_DOWN))//下键
    {
      y += 50;
    }
    if (GetAsyncKeyState(VK_LEFT))//左键
    {
      x -= 50;
    }
    if (GetAsyncKeyState(VK_RIGHT))//右键
    {
      x += 50;
    }

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

cleardevice();

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

while (1)
  {
    cleardevice();
    //控制球
    setfillcolor(BLACK);
    fillcircle(x, y, 50);
    if (GetAsyncKeyState(VK_UP))//上键
    {
      y -= 50;
    }
    if (GetAsyncKeyState(VK_DOWN))//下键
    {
      y += 50;
    }
    if (GetAsyncKeyState(VK_LEFT))//左键
    {
      x -= 50;
    }
    if (GetAsyncKeyState(VK_RIGHT))//右键
    {
      x += 50;
    }
    char key = _getch();
    switch (key)
    {
    case 'w':
      printf("上键");
      y -= 50;
      break;
    case 's':
      printf("下键");
      y += 50;
      break;
    case 'a':
      printf("左键");
      x -= 50;
      break;
    case 'd':
      x += 50;
      printf("右键");
      break;
    }
}

末尾就是细节三步了

getchar();//防止闪退

closegraph();//关闭窗口

return 0;                          

相关文章
|
6月前
|
存储 机器学习/深度学习 人工智能
Qt魔法书:打造自定义鼠标键盘脚本(二)
Qt魔法书:打造自定义鼠标键盘脚本
219 0
|
6月前
|
存储 编解码 Windows
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
|
6月前
|
存储
46.编写程序在屏幕上显示如下图形
46.编写程序在屏幕上显示如下图形
43 2
|
6月前
LabVIEW数字控件的键盘对话框
LabVIEW数字控件的键盘对话框
49 0
|
6月前
|
开发框架 Linux API
Qt魔法书:打造自定义鼠标键盘脚本(一)
Qt魔法书:打造自定义鼠标键盘脚本
81 0
|
6月前
|
API C语言 图形学
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
|
缓存
EasyX图形库note4,动画及键盘交互
EasyX图形库note4,动画及键盘交互
128 0
|
Linux C语言 C++
C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(一)
C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(一)
135 0
尝试用easyx窗口实现鼠标的操作
尝试用easyx窗口实现鼠标的操作
162 0
EasyX添加图片+鼠标操作
EasyX添加图片+鼠标操作
202 0
下一篇
无影云桌面