18_外星人游戏项目02——驾驶飞船/小结/

1)响应按键

每当用户按键时,都将在Pygame中注册一个事件。事件都是通过方法pygame.event.get() 获取的,因此在函数check_events() 中,我们需要指定要检查哪些类型的事件。每次按键都
被注册为一个KEYDOWN 事件。
检测到KEYDOWN 事件时,我们需要检查按下的是否是特定的键。例如,如果按下的是右箭头键,我们就增大飞船的rect.centerx 值,将飞船向右移动:
注意空格和制表符的使用
在这里插入图片描述
在这里插入图片描述

2)允许不断移动

玩家按住右箭头键不放时,我们希望飞船不断地向右移动,直到玩家松开为止。我们将让游戏检测pygame.KEYUP 事件,以便玩家松开右箭头键时我们能够知道这一点;然后,我们将结合使用KEYDOWN 和KEYUP 事件,以及一个名为moving_right 的标志来实现持续移动。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)左右移动

在这里插入图片描述
在这里插入图片描述

4)调整飞船的速度

下面来进一步优化飞船的移动方式:调整飞船的速度;限制飞船的移动距离,以免它移到屏幕外面去。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5)限制飞船的活动范围

让飞船到达屏幕边缘后停止移动。为此,我们将修改Ship 类的方法update() :
在这里插入图片描述

6)重构check_events()函数:

在这里插入图片描述

二,小结

1)Sublime 使用中的制表符和空格的报错解决方案:

https://blog.csdn.net/FengF2017/article/details/79300801#pygame_12
在这里插入图片描述
在这里插入图片描述

前面一共添加了4个文件:
1,alien_invasion.py:主文件
2,settings.py:设置文件
3,game_functions.py:游戏中的动作函数
4,ship.py:飞船的原始属性
1)alien_invasion.py:

主文件,创建一系列整个游戏都要用到的对象:存储在ai_settings 中的设置、存储在screen 中的主显示surface以及一个飞船例。文件alien_invasion.py还包含游戏的主循环,这是一个调用check_events() 、ship.update() 和update_screen() 的while 循环。
在这里插入图片描述

2)settings.py

文件settings.py包含Settings 类,这个类只包含方法__init__() ,它初始化控制游戏外观和飞船速度的属性。
在这里插入图片描述

3)game_functions.py

文件game_functions.py包含一系列函数,游戏的大部分工作都是由它们完成的。函数check_events() 检测相关的事件,如按键和松开,并使用辅助函数check_keydown_events() 和check_keyup_events() 来处理这些事件。就目前而言,这些函数管理飞船的移动。模块game_functions 还包含函数update_screen() ,它用于在每次执行主循环时都重绘屏幕。
在这里插入图片描述

4)ship.py

文件ship.py包含Ship 类,这个类包含方法__init__() 、管理飞船位置的方法update() 以及在屏幕上绘制飞船的方法blitme() 。表示飞船的图像存储在文件夹images下的文件ship.bmp中。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值