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;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

你可能感兴趣的:(c语言经典游戏,c语言)