IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 教你用Python实现经典游戏《弹珠台》 -> 正文阅读

[Python知识库]教你用Python实现经典游戏《弹珠台》

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

视频游戏开发商很快开始尝试重新制作弹球,首先是用相当基本的图形和物理,但随着时间的推移,现实感越来越强——如果你看看1984年任天堂的弹球,然后,比如说,1990年世嘉超级硬盘上的魔鬼迷恋,然后是1992年PC上的弹球梦,你可以看到这一类型在短短几年内发生了多么彻底的变化。

我们将在Pygame Zero中制作一个非常简单的弹球表演。我们不会使用任何复杂的数学或物理系统,只使用一点代数和三角学。

让我们从背景开始。我们需要一个图像,它在外面有障碍物,让球弹起,在底部有一个缺口,让球落下。我们还希望在比赛区域设置一些障碍物,并在侧面设置一个入口,以便球在第一次发射时进入。在这种情况下,我们也将使用我们的背景作为碰撞贴图,所以我们需要设计它,使球可以移动的所有区域都是黑色的。

接下来,我们需要一些脚蹼。这些被定义为演员的枢轴锚定位置设置在大端附近,并位于游戏区底部附近。我们检测左右按键,并在-30到+30度的范围内将脚蹼的角度旋转20度。如果没有按下任何键,则脚蹼会下降。有了这些元素,我们就有了自己的比赛区域,玩家就有了防守出口的能力。

我们现在所需要的只是一个球,在我们制造的障碍物周围弹跳。将球定义为Actor,我们可以为其添加方向和速度参数。设置这些值后,可以使用一些三角函数移动球。我们的新x坐标将移动球方向的sin值乘以速度,新y坐标将移动球方向的cos值乘以速度。我们还需要检测与物体和障碍物的碰撞,所以我们对球周围的四个像素进行采样,看看它是否击中了任何固体。如果有,我们需要让球反弹。如果你想要更真实的物理效果,可以计算被击中表面的反射角,但在这个示例中,我们将使用一个简便方式,这将产生一个粗略的近似值。我们计算出球的运动方向,然后向左或向右旋转四分之一圈,直到球不再与墙壁相撞。最后,我们需要增加一些重力。由于比赛区域向下倾斜,我们需要在球向下移动时提高球的速度,在球向上移动时降低球的速度。所有这些都会让你了解弹球比赛的基本情况。你可以添加更多内容来增加真实感。

源码下载地址:Wireframe-53/source-code-pinball at main · Wireframe-Magazine/Wireframe-53 (github.com)

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

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

?安装:
pip install pgzero


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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-26 15:17:31  更:2022-05-26 15:17:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:40:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码