Justin_Bu
2015-07-11 06:56
采纳率: 100%
浏览 1.7k
已采纳

用VS写MFC飞机大战遇到的画面卡顿

一直按住一个键,时间稍长就会使得所有显示都卡顿;我想是同时触发的事件太多的原因,于是加了bool型变量来控制,
if (GetKeyState(VK_SPACE) < 0&&ismybullet==false)//我子弹发射
{
ismybullet = true;
Mybullet *mbu = new Mybullet();
mbu->poi.x = myplane.poi.x + 20;
mbu->poi.y = myplane.poi.y;
mybulletlist.AddTail(mbu);
},
这个if是在计时器控制的,然后我应该把ismybullet = false;加在什么地方呢?

用了双缓冲绘图,子弹显示用了CImageList。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • oyljerry 2015-07-11 13:54
    已采纳

    长按一个键时,你应该降低处理频率。比如,对于移动键,就是移动到最边上,最上面,最下面后就不在继续项处理了。对于子弹,长按就是变成你的子弹发送的一个稳定平衡速度,而不是按照按键消息速度。

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(1条)

相关推荐 更多相似问题