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

用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条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置