飞机可以移动..
这个不够帅
我们要实现飞机
跟剧键盘操作移动
这才是我们想要的
这里就涉及到了pygame对键盘事件的操作了
pygame事件可以处理游戏中的各种事情。
Pygame里常用的事件如下表:
事件
产生途径
参数
QUIT
用户按下关闭按钮
none
ACTIVEEVENT
Pygame被激活或者隐藏
gain, state
KEYDOWN
键盘被按下
unicode, key, mod
KEYUP
键盘被放开
key, mod
MOUSEMOTION
鼠标移动
pos, rel, buttons
MOUSEBUTTONDOWN
鼠标按下
pos, button
MOUSEBUTTONUP
鼠标放开
pos, button
VIDEORESIZE
Pygame窗口缩放
size, w, h
2.实时事件循环
pygame中的事件处理是放在一个实时的循环中来完成的。将代码都放在一个while True的循环中,但是这样会造成死循环,所以在里面加一句sys.exit()来退出。
上面的代码将会创建当前等待处理的事件的一个列表,然后使用for循环来遍历里面的事件。
这样,我们将会根据事件产生的顺序依次地进行不同的操作。
常见的事件是按键按下,按键释放以及鼠标移动。通常需要最先处理QUIT事件(在用户关闭窗口的时候会产生该事件。)
whileTrue:
ifevent.type ==QUIT:
pygame.quit()
sys.exit()
3.键盘事件
键盘事件包括最典型的keyup和keydown当按键按下的时候响应KEYDOWN事件
按键弹起的时候响应KEYDOWN事件
通常可以设置一个事件变量,然后根据keyup或者keydown给它赋不同的值。
whileTrue:
ifevent.type ==QUIT:
sys.exit()
elifevent.type ==KEYDOWN:
key_flag=True
elifevent.type ==KEYUP:
key_flag= False
默认的话pygame不会重复地去响应一个被一直按住的键
只是在按键第一次被按下的时候响应一次
如果需要重复响应一个按键的话下面的操作:
#参数是一个以毫秒为单位的值
4.鼠标事件
pygame支持一些鼠标事件
他们包括
MOUSEMOTION,
MOUSEBUTTONUP,
MOUSEBUTTONDOWN.
在MOUSEMOTION中包含了一些属性:event.pos,event.rel,event.buttons
ifevent.type ==MOUSEMOTION:
mouse_x,mouse_y=event.pos
move_x,move_y= event.rel
MOUSEBUTTONDOWN里面的属性:
event.type ==MOUSEBUTTONDOWN:
mouse_down=event.button
mouse_down_x,mouse_down_y= event.pos
MOUSEBUTTONUP里面的属性:
event.type ==MOUSEBUTTONUP:
mouse_up=event.button
mouse_up_x,mouse_up_y= event.pos
基础科普完毕下面开始正题的验证
我们先写一个示例程序
完成键盘按键与打印对应
玩成开始运行依次按下键盘观察控制台
完美搞定
根据这些就可以实现
通过键盘实现飞机移动
先把飞机显示上来
通过结合键盘实现移动
看看运行效果
已经可以实现按下键飞机向下运动
松手停止
领取专属 10元无门槛券
私享最新 技术干货