估计很多老玩家在小时候都玩过Galaxian(小蜜蜂)吧。这款射击游戏的鼻祖叫《太空侵略者》,上手简单,但可玩性很强。

《太空侵略者》大火之后,新推出的Galaxian(小蜜蜂)于1979年成为其最大竞争对手。由Namco发行的Galaxian为外星敌人提供了新的色彩和不可预测的动作,后者不但会发射炮弹,还会自杀式俯冲攻击。

《Galaxian》在街机游戏中大受欢迎,以至于Namco在两年后又发布了续作《Galaga》——这款游戏使攻击模式更加复杂。

很难说《Galaxian》究竟有多少移植和克隆的版本,因为几乎每个家用游戏机上都有类似版本。

玩家在《Galaxian》中的角色与《太空侵略者》类似,驾驶一艘飞船与一支外星舰队战斗。

与《太空侵略者》不同的是,在《Galaxian》中,外星人总会打破队形向玩家的飞船发起俯冲轰炸。

玩家需要摧毁所有敌人,然后进入下一关。随着玩家的推进,一波又一波的敌人将让过关变得更加困难。

我们这里将着眼于外星人的俯冲机制,用Pygame Zero开发《Galaxian》游戏的核心功能。

首先,《Galaxian》拥有一个纵向显示画面,所以我们将游戏区域的宽度和高度分别设置为600和800。

接下来,我们可以用位图创建一个滚动的星空背景。​将位图逐渐往屏幕下方移动,用第二颗恒星来填充第一颗恒星向下滚动时留下的空间,我们还可以在后面添加另一个静态背景图像,这将提供一些视野深度。

然后,我们将玩家的飞船设置为Actor。并在update()函数中捕获左右箭头键,以便在屏幕上左右移动飞船。我们也可以用空格键发射子弹,子弹会沿屏幕向上移动,直到击中外星人或离开屏幕顶部。

和原版《Galaxian》一样,你一次只能发射一颗炮弹,所以我们只需要一个Actor。

外星人排成一行,一起在屏幕上左右移动。在这个例子中,我们只画一种类型的外星人,共画两行。你可以添加额外的类型和任意多行。当我们创建alien Actors时,我们还可以添加一个状态标志,我们需要确定当它们打破队形时,它们在行的哪一边,两边朝相反的方向飞行。在这种情况下,每行左边有4个外星人,右边有4个。

一旦它们在列表中建立起来,我们就可以在每次更新时遍历列表,并向前或向后移动它们。

当我们在移动外星人时,我们也可以查看它们是否与炮弹或玩家飞船相撞。

如果与炮弹碰撞,那么外星人将使用状态标志连续播放爆炸的那几帧,当状态达到5时,它们将不再被绘制到界面上。

如果碰撞发生在玩家的飞船身上,那么玩家会死亡,游戏也就结束了。

我们也可以检查一个随机数,看看外星人是否开始轰炸。如果是,我们将状态设置为1,这将开始调用flyAlien()函数。这个函数会检查外星人的位置,并根据侧边的不同改变外星人的角度,然后根据角度更改x和y坐标。为了方便大家看明白,我们这里处理的比较简单,你也可以使用一些乘数变量将其折叠到x坐标和角度上,将其收窄。

相关代码:

Python_game/source-code-galaxian at master · IoToutpost/Python_game · GitHub

要运行调试请先安装Pygame Zero。

该框架是一个基于Pygame的游戏编程框架。它可以更容易地编辑游戏,无需模板、不用编写事件循环,也无需学习复杂的Pygame API,而且支持树莓派。

安装:
pip install pgzero


PS:若要全面系统学习Pygame Zero可以参考《趣学Python游戏编程》一书,该书通过十个经典游戏案例,深入浅出地介绍了游戏编程的基本原理,以及Pygame Zero的具体使用方法。相信学完这本书后你也能开发出如此精彩的小游戏。

教你用Python实现经典游戏《小蜜蜂》相关推荐

  1. 教你用Python实现经典游戏《泡泡龙》

    <泡泡龙>于1986年发布,看起来与当时街机上的任何其他游戏都不一样.这是一款合作游戏,由大藤光二(Fukio Mitsuji)设计,由两名玩家控制一对龙Bub和Bob,并吹泡泡诱捕敌人, ...

  2. 教你用Python实现经典游戏《弹珠台》

    弹球游戏如此之多,以至于它本身已经成为一种类型.弹球起源于一种模拟街机,一个金属球将被发射到一个倾斜的游戏区域,并在障碍物之间弹跳.玩家通过按下机器两侧的按钮来操作一对脚蹼,从而将球击回比赛区域,击中 ...

  3. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 -首页最新文章经典回顾开发- Web前端- Py ...

  4. 一分钟教你学会python_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  5. python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)

    原标题:少儿编程分享:手把手教你用Python编写战斗机游戏(完) 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑 .接下来,我们要把单调的白色矩形换成好看的图片. 在前面的代码中,我们用 ...

  6. 怎么用python做战斗机_少儿编程分享:手把手教你用Python编写战斗机游戏(四)

    游戏分享:手把手教你用Python编写 战斗机游戏(四) 2018.1.25 飞机大战就到这里啦 你的飞机大战做出来了吗 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑.接下来,我们要把单 ...

  7. python编写小游戏17_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  8. Python制作经典游戏案例-水果忍者(附源码等文件)

    目录 前言 代码展示 总结 前言 大家好,我是辣条哥,今天给大家分享一款我以前特爱玩的游戏,水果大战,今天我就教大家使用python把这款游戏制作出来.我们先来看效果 点击跳转文末 相关的一些音乐文件 ...

  9. 教你用Python做小游戏

    第一步:你好,兔子 运行IDLE,打开一个新的文本编辑窗口.输入以下的代码: # 1 - Import library import pygame from pygame.locals import ...

  10. python制作小游戏教程_12岁的少年教你用Python做小游戏

    你有没有想过电脑游戏是怎样制作出来的?其实它没有你想象的那样复杂! 在这个教程里,你要学做一个叫<兔子和獾>的塔防游戏,兔子作为英雄,需要在城堡里抵御獾的进攻. 为了写这个游戏的代码,你将 ...

最新文章

  1. 最小二乘法、迭代优化、坐标轴下降法(Coordinate Descent, CD)、坐标下降和梯度下降对比、梯度下降法/最速下降法
  2. Linux中内存buffer和cache的区别
  3. linux shell 获取当前正在执行脚本的绝对路径
  4. vb6 判断打印机是否有效_智能收银机的热敏打印机打不出字怎么办?
  5. java扫描包内所有类_第20天|Java入门有野,修饰符
  6. 8086的两种工作模式_Buck变换器工作原理
  7. JAVA中的Hashset类
  8. RedisUtils工具类
  9. ansible常用ad hoc操作
  10. 医疗卫生行业涉及的信息数据元属性与值域代码(数据集)
  11. UEFI模式下安装ubuntu以及重装ubuntu教程
  12. 最新的ESD(ElectroStatic Discharge)静电介绍及其标准下载(见文尾)
  13. 五一济南酒店数据出炉,做一个酒店管理APP多少钱?
  14. php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...
  15. 网络爬虫 测试代理IP
  16. [转载]摩托车 各车型 坐姿 疲劳逻辑详解
  17. 数字电路基础(五)算术运算电路
  18. 小米 红米版note 4x刷机成功
  19. SpringBoot练手小案例-社区管理系统
  20. 2022.11.17排序题讲解

热门文章

  1. C语言:习题3-2 高速公路超速处罚.2021-07-27
  2. 中间商只会赚差价?论接口的重要性
  3. 三层交换机配置实现不同网络互通
  4. 平面解析几何----焦点弦上焦半径长度之比公式
  5. go语言-channel使用(二十一)
  6. [golang] go中如何监听一组channels
  7. 苹果手机科学计算机怎样调用,iOS上的表达式科学计算器Calculator i++使用说明
  8. 党² - 李超线段树
  9. 第五代计算机语言--YiGo
  10. 亲密关系科学(05)男女大脑激素差异