游戏设计手札06

今天遇到的问题:

  • 因为是全屏游戏,为了方便地图的显示,进入游戏时修改了系统分辨率,可是之后发现,这样一来第一个显示的页面闪一下后会被黑屏覆盖掉,之后要通过键盘触发相应的消息响应才能继续之后的显示。
  • 有时候按一下回车会产生连续按两下的效果。

解决的方法是:

  • 修改系统分辨率的代码需要放在窗口注册以后,否则会编译出错;并且要放在窗口创建之前,否则会出现上面提到的问题。
  • 在消息响应时添加了一个定时器,添加了一个全局变量waittime,初始时waittime = 0,收到按键的消息时,判断waittime的值是否为0。如果是,就执行相应处理函数,并启动定时器,设waittime值为1;如果不为0,则直接break返回。当收到定时器消息WM_TIMER时,销毁定时器,并置waittime为0,这样便能防止连续按键盘,我设置的定时器时间为500ms。其实跟单片机处理键盘的方法大同小异。
原文地址:https://www.cnblogs.com/cybersword/p/2330794.html