C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。
C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。应该是用Sleep()作为未按键的时间吧,我用_getch()来接收按键信息,但我不知...
C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。应该是用Sleep()作为未按键的时间吧,我用_getch()来接收按键信息,但我不知道怎么实现Sleep()过去后不接收输入而去执行移动,麻烦前辈、大佬们看一下我选中的这一段怎么修改
展开
1个回答
展开全部
Sleep只是用来控制蛇身移动的速度, 也就是难度级别, 越难, Sleep间隔时间越短
用一个标志变量来控制移动方向, 如: int flag; 如果flag=1, 则表示向上运动, flag=2表示向下, flag=3表示向左, flag=4表示向右. 在while中不断地等等用户输入, 来改变flag的值, 从而改变运动方向
我想你的困惑是在:等待用户输入时,代码会暂停在getch处,要用到非阻塞式监听键盘输入
conio.h头文件中的kbhit函数可以实现非阻塞式键盘监听
void move() //蛇身移动
{
.....
}
int main()
{
while(1)
{
if(kbhit()) //如果有键盘输入,则判断用户按下的是什么按键,并给flag赋值,从而改变移动方向,没有输入,则继续move()
{
ch = getch();
if(ch == XXX)
{
flag=?? //向上?下?左?右?
}
}
move();
}
}
--
2022-12-05 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询