千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Python培训教程分享:教你做一款飞机大战游戏框架

Python培训教程分享:教你做一款飞机大战游戏框架

来源:千锋教育
发布人:qyf
时间: 2022-01-14 17:46:00 1642153560

  Python是进入到互联网行业比较轻松的一门编程语言,对于零基础学员来说选择Python技术是非常明智的,Python不仅可以进行数据分析,还可以制作游戏,接下来小编就为大家介绍本期的Python培训教程-教你做一款飞机大战游戏框架。

Python

  Python培训教程分享:教你做一款飞机大战游戏框架

  1、游戏窗口

  经过安装Pygame,以及了解Pygame的核心功能之后,可以开始编写一个小的游戏案例了。下面将制作一个飞机大战游戏,游戏内容是敌对的两架飞机互相射击。

  游戏开始前需要调用初始化函数,代码如下:

  pygame.init()

  否则,在本案例中输出汉字时,会提示错误,字体没有初始化。

  创建一个游戏窗口,加载背景,设置窗口标题和图标等,代码如下:

  # 创建一个游戏窗口

  surface = pygame.display.set_mode((480, 652))

  # 加载背景图片

  background = pygame.image.load('./img/background.png')

  # 调整连续按键事件生成时间

  pygame.key.set_repeat(50, 50)

  # 设置窗口标题

  pygame.display.set_caption('飞机大战')

  # 设置窗口图标

  pygame.display.set_icon(pygame.image.load('./img/icon72x72.png'))

  2、游戏循环

  飞机大战中设计了游戏循环,还设计了玩家飞机、敌机、玩家子弹和敌人子弹四个类,以及碰撞和控制两个功能函数。另外,还有游戏启动界面和结束界面等函数。

  整个游戏的游戏循环如下:

  ①绘制背景图片。

  ②控制玩家飞机,主要响应玩家的操作。例如,玩家点击关闭按钮,则退出游戏;玩家按下左箭头键,则飞机向左移动;玩家按下右箭头键,则飞机向右移动;玩家按下空格键,则飞机发射子弹。

  ③绘制玩家飞机,包括正常状态和被击毁状态;绘制玩家飞机发射的子弹。

  ④绘制敌机,包括正常状态和被击毁状态;绘制敌机发射的子弹。

  ⑤控制敌机的移动。

  ⑥检测玩家飞机与敌机发射子弹的碰撞情况。

  ⑦检测敌机和玩家飞机发射子弹的碰撞情况。

  ⑧更新游戏窗口。

  游戏循环的具体实现代码如下:

  while True:

  surface.blit(background, (0, 0)) # 绘制背景图片

  kongzhi(hero) # 控制玩家飞机

  hero.hero_display() # 绘制玩家飞机

  enemyplan.display() # 绘制敌机

  enemyplan.move() # 控制敌机的移动

  impact(hero, enemyplan.biu_list) # 检测玩家飞机与敌机发射子弹的碰撞情况

  impact(enemyplan, hero.biu_list) # 检测敌机和玩家飞机发射子弹的碰撞情况

  pygame.display.update() # 更新游戏窗口

  以上就是相关Python培训教程,希望对大家有所帮助,如果你还有更多想要了解的Python培训教程以及疑问或者想要了解的,可以在线咨询我们客服,有专业老师随时为你服务。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT