首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手把手带你入python坑小游戏-微信打飞机(8)

飞机可以移动..

这个不够帅

我们要实现飞机

跟剧键盘操作移动

这才是我们想要的

这里就涉及到了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

基础科普完毕下面开始正题的验证

我们先写一个示例程序

完成键盘按键与打印对应

玩成开始运行依次按下键盘观察控制台

完美搞定

根据这些就可以实现

通过键盘实现飞机移动

先把飞机显示上来

通过结合键盘实现移动

看看运行效果

已经可以实现按下键飞机向下运动

松手停止

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180709G1GSP700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券