陶小童 2017-08-17 05:02 采纳率: 0%
浏览 918

c++的键盘事件不响应,应该怎么改,代码如下,哪位大神指点一下!!!!

Set_location(64, 15);
cout << "不能穿墙,不能咬到自己" << endl;
Set_location(64, 16);
cout << "用↑.↓.←.→分别控制蛇的移动" << endl;
Set_location(64, 17);
cout << "贪吃蛇可以穿越隧道,障碍物不能碰撞!" << endl;
Set_location(64, 18);
cout << "space:暂停游戏" << endl;
while (1)
{
if (GetAsyncKeyState(VK_UP) && condition != DOWN)//这里用到一个判断按键状态的函数
condition = DOWN;

else if (GetAsyncKeyState(VK_DOWN) && condition != UP)
condition = UP;
else if (GetAsyncKeyState(VK_LEFT) && condition != RIGHT)
condition = LEFT;
else if (GetAsyncKeyState(VK_RIGHT) && condition != LEFT)
condition = RIGHT;
else if (GetAsyncKeyState(VK_SPACE))
{
pause();
}
Sleep(200);
head->Move();//在这里调用move函数

}

}

  • 写回答

2条回答 默认 最新

  • 鼠晓 博客专家认证 2017-08-17 05:19
    关注

    Move();函数中有没有用到condition?,,我猜应该用了,不知道,是不是用错了。

    还有个问题,,你这里在while循环中顺次判断键盘状态,
    就是从键盘输入一个按键时,可能没被判断到,,你是循环顺次判断的,很容易判断不到。

    这样容易出问题,建议使用“事件机制”
    可以去看看c++监听键盘输入事件的东西,

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧