对于游戏来说,要时时刻刻处理玩家的输入。玩家是通过键盘、鼠标或者手柄进行输入的,监听键盘,实际上就是接受玩家的输入,并在游戏代码中处理这些输入。
1 键盘事件
当玩家按下键盘之后,操作系统就会将相应的键盘事件放入到事件队列中。
1.1 键盘事件的表示方法
通过pygame.KEYDOWN和pygame.KEYUP表示键盘按键被按下和松开时的事件。监听键盘按键是否被点击,可以对事件队列中的pygame.KEYDOWN或者pygame.KEYUP进行处理即可。
1.2 键盘点击的监听
监听键盘按键是否被点击,只需对pygame.KEYDOWN和pygame.KEYUP中的任意一个事件进行监听即可。在Pygame编程框架代码的基础上加入如图1所示。
图1 监听键盘点击的代码
其中,第12-13行代码对事件队列中事件的类型进行判断,如果是pygame.KEYUP,则说明玩家点击了键盘中的按键,此时打印按键被点击的信息。运行代码,点击键盘按键后,效果如图2所示。
图2 代码运行效果
从图2中可以看出,当代码运行后,点击键盘按键,就会显示按键被按下的信息。
注意1 在点击按键时,要确保输入法为英文。
1.3 按键的判断
在判断了有按键被点击后,还需要判断是哪个按键被按下。可以通过如图3所示代码实现。
图3 判断按键的代码
其中,当判断了键盘按键被点击后,通过13-24行代码继续判断是哪个按键被按下,通过对判断event.key的值来实现。K_数字表示数字按键,K_字母表示字母按键,其它按键的值event.key值可以通过Spyder的提示功能查看,当输入“pygame.K_”后点击“Ctrl”+“空格”按键,就会弹出所有按键的event.key值,如图4所示。
图4 所有按键的event.key值
运行图3所示的代码后,点击相应按键,效果如图5所示。
图5 代码运行效果
2 控制矩形移动
在《从零开始学Python游戏编程24-Pygame4》中提到了在游戏窗口中绘制矩形方法。接下来,根据键盘监听功能,实现玩家控制这个矩形实现移动。
2.1 使用变量定义矩形左上角坐标
移动矩形的位置,实际上就是要改变矩形左上角的横纵坐标。因此,首先需要将矩形左上角的横纵坐标定义为常量,代码如图6所示。
图6 定义矩形左上角的横纵坐标的代码
其中,x表示横坐标,y表示纵坐标。
注意2 在while循环之前定义矩形左上角的横纵坐标。
2.2 设置游戏窗口背景色
设置游戏窗口背景色的代码如图7所示。
图7 设置游戏窗口背景色的代码
其中,第17行中的window即为创建的游戏窗口,通过该变量调用fill()函数的作用就是设置window的背景色,(255, 0, 0)表示红色。
注意3 设置游戏窗口背景色的代码在while循环之内。
2.3 绘制矩形
绘制矩形的代码如图8所示。
图8 绘制矩形的代码
其中,pygame.draw.rect()函数的第三个参数中,x和y即为矩形左上角的横纵坐标。
相关链接1 pygame.draw.rect()函数的相关资料,请参考