前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyGame Zero:没有样板的游戏 【Gaming】

PyGame Zero:没有样板的游戏 【Gaming】

作者头像
五月Rambo
修改2019-11-11 17:54:15
1.6K0
修改2019-11-11 17:54:15
举报

有了PyGame Zero,与游戏开发中的无聊样板说88吧。

图片来源:OpenGameArt.org

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

现在按键盘上的键将增强“绿色”

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

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

试试看你能想出什么样的游戏!

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档