11.背景的绘制以及交互功能
11.背景的绘制以及交互功能
背景的绘制
1 | void putMainBk() { |
这段代码没有什么难度。
最后效果如图所示:
交互
在这里将所有的交互写到一个函数
1 | void clickMsg() { |
其中keyboardMove是键盘事件,clickMenu是鼠标事件。
键盘事件
在键盘事件中,我们要实现通过按wsad实现僵尸的上下左右移动。并且需要不越界。
1 | void keyboardMove(ExMessage* msg) {//模式2中键盘控制僵尸移动 |
在这里WM_KEYDOWN表示键盘消息,msg->prevdown==false判断前一个案件是否按下,如果不写这行代码,则会连续移动两次,0x41等表示案件的虚拟键码;如果僵尸在第一行到第五行并且在图内按键盘才有效。
鼠标事件
在本游戏中,鼠标按键就是判断用户点击了哪个菜单,若点击了退出游戏,那么关闭游戏,若点击了暂停,则游戏暂停。
1 | void clickMenu(ExMessage* msg) { |
我们主要看暂停部分,若玩家点击了暂停按钮,则变量ispause设置为true表示为暂停状态,随后进入一个死循环,绘制暂停框,只有用户点击了继续游戏,变量ispause设置为false退出死循环,继续游戏。