Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动
系列文章目录
第一章:武装飞船
06:让飞船移动
目录
系列文章目录
第一章:武装飞船
06:让飞船移动
一、驾驶飞船
二、让飞船移动
1.代码及注释(笔记)
A:修改文件:game_functions.py
B:修改文件:alien_invasion.py
C:修改文件:ship.py
2.运行效果
A.按下右箭头键后向右移动,再按下左箭头键时停止
B.按下左箭头键后向右移动,再按下右箭头键时停止
一、驾驶飞船
下面来让玩家能够左右移动飞船。我们将编写代码,在用户按左或右箭头键时做出响应。我们将首先专注于向右移动,再使用同样的原理来控制向左移动。通过这样做,你将学会如何控制屏幕图像的移动。
二、让飞船移动
1.代码及注释(笔记)
(笔记在代码的注释中!!!)
A:修改文件:game_functions.py
#渗透小红帽python的学习之路
#外星人入侵小游戏
#game_functions.py
#存储让游戏运行的函数import sysimport pygamedef check_events(ship): # 在玩家按右箭头时需要将飞船向右移动,# 所以给函数加上了形参shipfor event in pygame.event.get(): # 监听键盘和鼠标事件if event.type == pygame.QUIT:sys.exit()#修改alien_invasion.py,使其导入game_functions#并将事件循环替换为对函数check_events()的调用elif event.type == pygame.KEYDOWN:if event.key == pygame.K_RIGHT:#移动飞船ship.moving_right = True#玩家按下右箭头键时标志设为trueelif event.key == pygame.K_LEFT:ship.moving_left = True# 玩家按下左箭头键时标志设为trueelif event.type == pygame.KEYUP:if event.key == pygame.K_RIGHT:ship.moving_right = False# 玩家松开右箭头键时标志设为falseelif event.key == pygame.K_LEFT:ship.moving_left = False# 玩家松开左箭头键时标志设为falsedef update_screen(ai_settings,screen,ship):# 将更新屏幕的代码移到此处screen.fill(ai_settings.bg_color) # 每次循环都会重绘屏幕ship.blitme() # 每次循环时重新绘制飞船pygame.display.flip() # 让最近绘制的屏幕可见# 然后修改alien_invasion.py
B:修改文件:alien_invasion.py
#渗透小红帽python的学习之路
#外星人入侵小游戏
#game_functions.py
#存储让游戏运行的函数import sysimport pygamedef check_events(ship): # 在玩家按右箭头时需要将飞船向右移动,# 所以给函数加上了形参shipfor event in pygame.event.get(): # 监听键盘和鼠标事件if event.type == pygame.QUIT:sys.exit()#修改alien_invasion.py,使其导入game_functions#并将事件循环替换为对函数check_events()的调用elif event.type == pygame.KEYDOWN:if event.key == pygame.K_RIGHT:#移动飞船ship.moving_right = True#玩家按下右箭头键时标志设为trueelif event.key == pygame.K_LEFT:ship.moving_left = True# 玩家按下左箭头键时标志设为trueelif event.type == pygame.KEYUP:if event.key == pygame.K_RIGHT:ship.moving_right = False# 玩家松开右箭头键时标志设为falseelif event.key == pygame.K_LEFT:ship.moving_left = False# 玩家松开左箭头键时标志设为falsedef update_screen(ai_settings,screen,ship):# 将更新屏幕的代码移到此处screen.fill(ai_settings.bg_color) # 每次循环都会重绘屏幕ship.blitme() # 每次循环时重新绘制飞船pygame.display.flip() # 让最近绘制的屏幕可见# 然后修改alien_invasion.py
C:修改文件:ship.py
#渗透小红帽python的学习之路
#外星人入侵小游戏
#ship.py
#管理飞船行为的类import pygameclass Ship():def __init__(self,screen):#参数screen用来指定将飞船绘制到什么地方self.screen = screen#加载飞船图片并获取其外接矩形self.image = pygame.image.load('F:/PythonProject/pythongame/images/ship.bmp')#复制图片路径后需要将斜杠改为反斜杠self.rect = self.image.get_rect()self.screen_rect = screen.get_rect()#将每艘新飞船放在屏幕中间self.rect.centerx = self.screen_rect.centerxself.rect.bottom = self.screen_rect.bottom# 移动标志,玩家按下右箭头键时,将标志设为true,松开时重新设置为falseself.moving_right = Falseself.moving_left = False# 方法update()检查标志状态,标志为true时调整飞船位置def update(self):if self.moving_right:self.rect.centerx += 1 #实现了飞船向右移动if self.moving_left:self.rect.centerx -= 1 #实现了飞船向左移动def blitme(self):# 在指定位置绘制飞船self.screen.blit(self.image, self.rect)
2.运行效果
A.按下右箭头键后向右移动,再按下左箭头键时停止
B.按下左箭头键后向左移动,再按下右箭头键时停止
有什么不懂的地方在评论区留言哦!希望我的文章能对你有所帮助,如果喜欢我的文章,请点赞收藏并关注!你的认可是对我创作最大的鼓励!
Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动相关推荐
- Python小游戏——外星人入侵(保姆级教程)第一章 03设置飞船图片 04创建Ship类
系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类--管理飞船行为的类 目录 系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类--管理飞船行为的类 一.设 ...
- Python小游戏——外星人入侵(保姆级教程)第一章 07调整飞船速度 08限制飞船活动范围
系列文章目录 第一章:武装飞船 07调整飞船速度 08限制飞船活动范围 目录 系列文章目录 第一章:武装飞船 07调整飞船速度 08限制飞船活动范围 一.代码及演示 1.修改settings 2.修改 ...
- Ubuntu22.04LST版本如何安装/卸载steam游戏平台(保姆级教程)
目录: 第一种安装/卸载方法:Ubuntu Softwaer安装steam 第二种安装方法:linux终端安装 卸载steam游戏平台 steam游戏平台如何配置中文 补充 steam是一个含有数千款 ...
- python小游戏----外星人入侵
源代码: AlienInvasion/game at main · CrashBugger/AlienInvasion (github.com) 本文来自作者对<python编程-从入门到实践& ...
- 还不会小程序开发?适用于新手、前端、后端、全栈的小程序开发保姆级教程!
2017年,那个男人微信之父"龙哥",在公开课上提出"小程序".那时大家都还在享受移动互联网所带来的便捷体验,对于微信这个庞然大物所倡导的新物种显然是有点不知所 ...
- 【Python黑科技】tkinter库实战“俄罗斯方块”小游戏(保姆级图文+实现代码)
目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列,持续更新中 实现效果 实现思路 空间――由 15*25 个空格组成 ...
- 【Python黑科技】tkinter库实战“连连看”小游戏(保姆级图文+实现代码)
目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列,持续更新中 实现效果 实现思路 链接: https://pan.b ...
- 【Python黑科技】tkinter库实战“贪吃蛇”小游戏(保姆级图文+实现代码)
目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列,持续更新中 实现效果 实现思路 初始状态的蛇的长 3个像素点,食物 ...
- 【Python黑科技】tkinter库实战“2048”小游戏(保姆级图文+实现代码)
目录 实现效果 实现思路 接收玩家操作 实现代码 总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列,持续更新中 实现效果 实现思路 按上下左右移动方块. ...
最新文章
- 设置IDEA自动导入import 关联的包
- 如何轻松学会一门外语?
- 30天敏捷结果(4):放弃一些事情
- gzcms技术开发文档
- js 字符串操作函数有哪些
- 伺服系统控制网络的重要性! 现场总线的重要性! SSCNET运动控制系统与发展趋势
- java外部接口图解_java代码实现访问网络外部接口并获取数据的工具类详解
- checked exception和unchecked exception区别
- 机器学习9-案例1:银行营销策略分析
- 淘宝首页性能优化实践
- 加盟 XEIM 开源即时通讯软件团队
- c语言中地址值是什么意思,单片机C语言中如何区别是地址还是数值啊?
- 电脑卡顿反应慢解决办法
- 全球首家BAYC NFT主题餐厅BoredHungry开业,可使用APE和ETH支付
- 简单介绍区块链的联盟链
- 收获之英雄会产品论坛
- IntelliJ IDEA配置开发环境
- 意想不到的试衣方法, kinect试衣镜将问世,神奇!
- 【华为机考】俄罗斯方块详解——图文并茂,绘声绘色
- 小觅相机问题解决后开始进行标定的事