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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive