Merge pull request #12378 from wxy/20190125-PyGame-Zero--Games-without-boilerplate

PRF&PUB:20190125 PyGame Zero  Games without boilerplate
This commit is contained in:
Xingyu.Wang 2019-02-13 00:22:52 +08:00 committed by GitHub
commit a9d6f4b601
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,26 +1,26 @@
[#]: collector: (lujun9972)
[#]: translator: (bestony)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-10532-1.html)
[#]: subject: (PyGame Zero: Games without boilerplate)
[#]: via: (https://opensource.com/article/19/1/pygame-zero)
[#]: author: (Moshe Zadka https://opensource.com/users/moshez)
PyGame Zero: 从 0 开始的游戏
PyGame Zero: 无需模板的游戏开发
======
在你的游戏开发过程中有了 PyGame Zero和枯燥的模板说再见吧。
> 在你的游戏开发过程中有了 PyGame Zero和枯燥的模板说再见吧。
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/python3-game.png?itok=jG9UdwC3)
Python 说一个很好的入门编程语言。并且,游戏是一个很好的入门项目:它们是可视化的,自驱动的,并且可以很愉快的与朋友和家人分享。虽然,绝大多数的 Python 写就的库,比如 [PyGame][1] ,会让初学者因为忘记微小的细节很容易导致什么都没渲染而感到困扰
Python 是一个很好的入门级编程语言。并且,游戏是一个很好的入门项目:它们是可视化的,自驱动的,并且可以很愉快的与朋友和家人分享。虽然,绝大多数的 Python 写就的库,比如 [PyGame][1] ,会让初学者因为忘记微小的细节很容易导致什么都没渲染而感到困扰
人们理解所有部分的原因前,他们将其中的许多部分都视为“无意识的样板文件”——需要复制和粘贴到程序中才能使其工作的神奇段落。
理解所有部分的作用之前,他们会将其中的许多部分都视为“无意识的模板文件”——需要复制和粘贴到程序中才能使其工作的神奇段落。
[PyGame Zero][2] 试图通过在 PyGame 上放置一个抽象的层来弥合这一差距,因此它实际上并不需要模板。
[PyGame Zero][2] 试图通过在 PyGame 上放置一个抽象层来弥合这一差距,因此它字面上并不需要模板。
我们在字面上说的,就是我们的意思
我们在说的“字面”,就是在指字面。
这是一个合格的 PyGame Zero 文件:
@ -28,17 +28,17 @@ Python 说一个很好的入门编程语言。并且,游戏是一个很好的
# This comment is here for clarity reasons
```
我们可以将它放在一个 **game.py** 文件里,并运行:
我们可以将它放在一个 `game.py` 文件里,并运行:
```
$ pgzrun game.py
```
这将会展示一个可以通过关闭窗口或按下**CTRL-C**中断的窗口,并在后台运行一个游戏循环
这将会展示一个窗口,并运行一个可以通过关闭窗口或按下 `CTRL-C` 中断的游戏循环。
遗憾的是,这将是一场无聊的游戏。什么都没发生。
为了让更有趣一点,我们可以画一个不同的背景:
为了让更有趣一点,我们可以画一个不同的背景:
```
def draw():
@ -59,10 +59,9 @@ def update():
这将会让窗口从黑色开始,逐渐变亮,直到变为亮红色,再返回黑色,一遍一遍循环。
**update** 函数更新了 **draw** 渲染这个游戏所需的这些参数的值
`update` 函数更新了参数的值,而 `draw` 基于这些参数渲染这个游戏
即使是这样,这里也没有任何方式给玩家与这个游戏的交互的方式。
让我们试试其他一些事情:
即使是这样,这里也没有任何方式给玩家与这个游戏的交互的方式。让我们试试其他一些事情:
```
colors = [0, 0, 0]
@ -77,7 +76,7 @@ def on_key_down(key, mod, unicode):
    colors[1] = (colors[1] + 1) % 256
```
现在,按下按来提升亮度。
现在,按下按来提升亮度。
这些包括游戏循环的三个重要部分:响应用户输入,更新参数和重新渲染屏幕。
@ -92,7 +91,7 @@ via: https://opensource.com/article/19/1/pygame-zero
作者:[Moshe Zadka][a]
选题:[lujun9972][b]
译者:[bestony](https://github.com/bestony)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出