PyGame Zero: 无需模板的游戏开发
创始人
2024-03-02 01:54:29
0

在你的游戏开发过程中有了 PyGame Zero,和枯燥的模板说再见吧。

Python 是一个很好的入门级编程语言。并且,游戏是一个很好的入门项目:它们是可视化的,自驱动的,并且可以很愉快的与朋友和家人分享。虽然,绝大多数的 Python 写就的库,比如 PyGame ,会让初学者因为忘记微小的细节很容易导致什么都没渲染而感到困扰。

在理解所有部分的作用之前,他们会将其中的许多部分都视为“无意识的模板文件”——需要复制和粘贴到程序中才能使其工作的神奇段落。

PyGame Zero 试图通过在 PyGame 上放置一个抽象层来弥合这一差距,因此它字面上并不需要模板。

我们在说的“字面”,就是在指字面。

这是一个合格的 PyGame Zero 文件:

# This comment is here for clarity reasons

我们可以将它放在一个 game.py 文件里,并运行:

$ pgzrun game.py

这将会展示一个窗口,并运行一个可以通过关闭窗口或按下 CTRL-C 中断的游戏循环。

遗憾的是,这将是一场无聊的游戏。什么都没发生。

为了让它更有趣一点,我们可以画一个不同的背景:

def draw():
    screen.fill((255, 0, 0))

这将会把背景色从黑色换为红色。但是这仍是一个很无聊的游戏,什么都没发生。我们可以让它变的更有意思一点:

colors = [0, 0, 0]

def draw():
    screen.fill(tuple(colors))

def update():
    colors[0] = (colors[0] + 1) % 256

这将会让窗口从黑色开始,逐渐变亮,直到变为亮红色,再返回黑色,一遍一遍循环。

update 函数更新了参数的值,而 draw 基于这些参数渲染这个游戏。

即使是这样,这里也没有任何方式给玩家与这个游戏的交互的方式。让我们试试其他一些事情:

colors = [0, 0, 0]

def draw():
    screen.fill(tuple(colors))

def update():
    colors[0] = (colors[0] + 1) % 256

def on_key_down(key, mod, unicode):
    colors[1] = (colors[1] + 1) % 256

现在,按下按键来提升亮度。

这些包括游戏循环的三个重要部分:响应用户输入,更新参数和重新渲染屏幕。

PyGame Zero 提供了更多功能,包括绘制精灵图和播放声音片段的功能。

试一试,看看你能想出什么类型的游戏!


via: https://opensource.com/article/19/1/pygame-zero

作者:Moshe Zadka 选题:lujun9972 译者:bestony 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

教练,我想上AI培训班!
最近一段时间,我总是能在各个地方看到AI职业培训的广告。其中有些说...
2026-04-01 20:38:03
AI逼死宅男
图片来源:图虫 老黄变了。 在GTC 2026现场,居然怒怼玩家:...
2026-03-21 23:40:30
Unity引擎要原生适配S...
IT之家 3 月 14 日消息,据科技媒体 TechPower U...
2026-03-15 18:52:34
真正好玩的AI原生游戏
当下 AI 与游戏的结合已经出现了无数种可能:生成场景、驱动 NP...
2026-03-12 13:02:12
开发者把Linux装进PS...
IT之家 3 月 7 日消息,开发者 Andy Nguyen 今天...
2026-03-07 11:18:12

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...