基于米思齐的游戏精灵开发成果初览

发布时间:2021.11.01

基于米思齐的游戏精灵开发成果初览


米思齐软件自2014年起发布,先后支持基于Arduino、microPython、circuitPython等平台的硬件编程及基于Python的软件编程,吸引了大批中小学用户使用。为了增强对于游戏设计的支持,进一步吸引孩子的学习兴趣,米思齐团队又把开发创想引向了游戏精灵模块。


Pgzero和游戏精灵设计介绍01

Pgzero全称为Pygame Zero,是一个用于实时电子游戏研发的Python库。Pgzero以Python语言逻辑构建游戏进程中的函数,利用图片创建游戏角色和游戏背景。Pgzero中最为核心的函数是内部的draw函数和update函数:前者用于重绘游戏窗口,包括游戏中的角色、文字、背景等;后者用于实现游戏逻辑,其会不断刷新并获取最新的游戏运行状态(重复调用频率为60次每秒),然后做出相应的游戏状态改变,以实现游戏的进行和结束。

游戏精灵模块主要基于Pgzero库进行开发,其主体运行逻辑跟Pgzero类似,Pgzero中的draw函数对应游戏精灵中的“绘制场景”代码块,而update函数则是对应“当刷新时执行”代码块。游戏精灵模块下设有七个子模块,分别是:侦测、画笔、声音、音乐、控制、外观、运动,下面依次进行简要介绍。

demo.jpg

图1 游戏精灵模块

(1)侦测

在侦测模块中,用户可以监测鼠标移动、按下鼠标、松开鼠标、键盘输入等事件,并且执行一定的操作。此外,用户还可以使用代码块判断某一个角色(actor)是否到达某个位置(碰到坐标)或者跟另一角色(target)之间的距离和角度。

demo.jpg

图2 侦测模块

(2)画笔

在画笔模块中,用户可以添加文本,绘制线段、矩形和圆,并且调整图形的大小、形状和颜色。此外,用户还可以使用画笔,通过调整画笔的角度和运动的方向来绘制各种图案。

demo.jpg

图3 画笔模块

(3)声音和音乐模块

在声音和音乐模块,用户可以实现对声音和音乐播放的控制。虽然都是播放音频的模块,声音和音乐模块却有很多不同之处:声音模块播放的音频一般为时间短的片段,而音乐模块则是播放一个更长、更完整的音乐曲目;在游戏进程中可以有几个声音同时出现、出现后会自动结束,而音乐却只能一次播放一首,如果不停止播放则会持续循环当前音频(“播放xx音乐一次”代码块例外)。至于具体操作,只要把音频放到指定目录,相关代码块的下拉列表里面就会出现音频文件的名称,即可使用(如图 5),.wav和.mp3格式的音频都可以支持。

demo.jpg

图 4 声音和音乐模块

demo.jpg

图 5 声音(sounds)文件夹示例

(4)控制

米思齐已经对顺序、条件和循环等控制结构进行了较好的支持。在游戏精灵的控制模块中,主要对画面绘制内容、程序逻辑、函数调用以及程序的结束进行控制。用户可以使用“绘制场景”和“当刷新时执行”的代码块来设计场景和游戏逻辑,也可以设置在一段时间之后执行某些函数。

demo.jpg

图 6 控制模块

(5)外观

在外观模块中,用户可以创建角色、更改角色形象,更改游戏窗口模式、游戏背景,控制鼠标是否显示等等。需要注意的是,外观模块的代码块根据创建的角色动态生成,只有创建了至少一个角色,才会出现更改角色形象,获取角色大小等代码块。类似的,把图片放到指定目录就可以在软件里直接使用。

demo.jpg

图 7 外观模块(创建角色之前)

demo.jpg

图 8 外观模块(创建角色之后)

(6)运动

在运动模块中,用户可以控制游戏角色的坐标位置和方向,还可以让角色沿着某一路径滑行。和外观模块类似,运动模块的代码块也是动态生成的,在没有创建角色的时候,运动模块中是没有代码块的。

demo.jpg

图 9 运动模块


具体游戏设计实例展示02


(1)彩色花团

“彩色花团”主要使用“游戏精灵”中的“画笔”“外观”“控制”模块,再结合“游戏精灵”以外的“控制”“列表”等相关代码块完成图形绘制。

demo.jpg

图 10 “彩色花团”程序示例

  

demo.jpg


图 11 “彩色花团”运行结果

demo.jpg


(2)接苹果

“接苹果”主要使用“游戏精灵”的“外观”“画笔”模块对小碗、苹果、时间和分数等进行绘制,再使用“运动”“侦测”模块,结合米思齐其它的“变量”“逻辑”“数学”“列表”等模块实现游戏逻辑——小碗随着键盘“向左”“向右”键的控制左右移动,如果接到苹果则得一分,在15秒内得到10分则为胜利,否则失败。

demo.jpg

图 12 “接苹果”代码节选

demo.jpg


游戏精灵模块的优势03



(1)轻松的游戏编写

通过“游戏精灵”模块,可以轻松地编写一个游戏。用户在使用过程中无需完全理解图形化编程底层的代码逻辑,而是以理解游戏逻辑为学习切入点,这减轻了用户的认知负荷。即使是小学阶段的学习者,也可以设计出属于自己的游戏,并且从中获得编程的乐趣。

(2)生动的呈现方式

“游戏精灵”模块支持各种图像、音频的呈现,用户可以通过对相关模块的使用编写出生动有趣的动画、游戏。这很适合用于低年级学生的编程课堂,生动有趣的形式有助于引起学生的兴趣,也有助于营造良好的课堂氛围。

总结

总之,“游戏精灵”模块能够支持用户轻松地编写有趣的游戏,适合低年段学生进行编程学习,提高编程兴趣;同时“游戏精灵”模块也可以配合米思齐原有功能,帮助用户实现更复杂的作品创意,进而推广到更高年级学生的编程学习。


扫码关注“思泰姆”,了解更多米思齐的奥秘!