这个C++的贪吃蛇的程序怎么实现暂停和变速啊,在线等

代码放不下,到这个地址看一下,麻烦大大了http://hi.baidu.com/lianxiadegk/item/6444d33a6ea35e392e20c4d2... 代码放不下,到这个地址看一下,麻烦大大了

http://hi.baidu.com/lianxiadegk/item/6444d33a6ea35e392e20c4d2
展开
 我来答
平生居
推荐于2016-10-21 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:96.6万
展开全部

 键盘输入在get_direction()函数 中,增加对速度的控制键,比如‘+’,‘-’,暂停sapce,增加控制代码:

void get_direction()
{
   direction_before=direction;//记住蛇上一个状态的运动方向
  
       while(kbhit()!=0)   //调试
          direction=getch();

改为:

void get_direction()
{   
    direction_before=direction;//记住蛇上一个状态的运动方向   
    char key;

    while(kbhit()!=0)   //调试
        key =getch();
    if(key=='a'||key=='w'||key=='s'||key=='d')
        direction= key;
     else if(key==' ')
     {
        while(getch()!=' ')
        {
        }
     }
     else if(key=='+')
        delay+=10;//延迟改变步长,可以为其他值
     else if(key=='-')                
        delay-=10;//延迟改变步长,可以为其他值

  //.....................................................

     没有测试,思路应该这样

追问
测试了一下,可以是可以暂停和改变速度了
可是出现了2个问题:
1、按空格暂停后,再按空格动了一下又停止了,要同时按空格+任意一个键 才能在运行,能改为只按一颗键就能在运行吗?
2、减速正常,但有时候只按一下加速后,程序会自动不断加速,直至卡死,这是什么问题?
大大,谢谢你的帮助T T
百度网友e7ebc6a
2013-06-16 · TA获得超过215个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:273万
展开全部
给你一个最简单的,在你的main里面,初始化好了后,把运行时候的代码包进去。(当然,无论是否暂停,描画功能是每次都必须的,不能因为暂停就不描画了)
if(pause )
{
//什么都不做,或者测试按了某个键,解除pause(使pause为false)

}
else
{
//你的游戏的运行代码

}

变速也类似,你可以把那个 if(pause)改成 “是否已经经过100毫秒了”,这样的判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式