概述
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
今天我们来学一下如何在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'为例
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;
最后
以上就是仁爱蜗牛为你收集整理的easyx图形编辑--键盘操作的全部内容,希望文章能够帮你解决easyx图形编辑--键盘操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复