通过按键控制蛇的移动,首先需要读取按键,通过按键来控制。
通过百度后得知用kbhit();
用一小段代码进行测试:
一直输出Hello World,直到用户按Esc结束
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main(void)
{
char ch;
while(ch!=27)
{
printf("HelloWorld\n");
if(kbhit())
{
ch=getch();
}
}
printf("End!\n");
system("pause");
return 0;
}
kbhit()在执行时,检测是否有按键按下,有按下返回非0值,没有按下则返回0,是非阻塞函数;
不同于getch()的在执行时,检测按下什么键,如果不按键该函数不返回,也就不进行下一步操作,是阻塞函数。
显而易见,我们需要在蛇移动的时候进行控制。我们只需要通过控制蛇头的方向,蛇身依次而动就可以了。
实现逻辑:
1、加入按键控制
2、判断是否有按键
3、按照按键来进行移动
4、没有按键,按照固定方向移动
用w a s d 分别表示上左下右,完整代码及注释如下: