C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。

C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。应该是用Sleep()作为未按键的时间吧,我用_getch()来接收按键信息,但我不知... C++:我想写个贪吃蛇,控制移动时怎么判断按键改变方向移动和未按键按之前方向的移动。应该是用Sleep()作为未按键的时间吧,我用_getch()来接收按键信息,但我不知道怎么实现Sleep()过去后不接收输入而去执行移动,麻烦前辈、大佬们看一下我选中的这一段怎么修改 展开
 我来答
百度网友2018359
2017-02-22 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1433万
展开全部

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 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有... 点击进入详情页
本回答由--提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式