阅读Tracy Fullerton, GAME DESIGN WORKSHOP一书中的部分内容后,我对游戏结构、基本元素以及戏剧元素有了更深的理解。基于这一游戏设计理念,我设计了一个小游戏《叠积木》。
制作游戏使用微信小游戏制作工具。
在按照入门指南制作了一个“打飞机”小游戏之后,我对这个工具低代码、拖积木的用法也有了一定理解。老师让我们以这个平台制作游戏作为课程的开始,是想让我们先不拘泥于游戏的具体制作,而是先从游戏的理念、设计、背景入手来了解游戏的设计与制作过程。
1. 游戏介绍
小明小朋友正在玩搭积木的游戏,为了能让他在朋友之间出风头,请你帮他将积木叠得尽可能高!
玩家需要通过点击屏幕来使左右移动的积木掉下,主要目标是使其落在粉色“地基”上,每叠高一层便获得一分,请叠上尽可能多的积木,获得更高的分数。
1.1 主要对象
绿色积木,这是玩家操控的对象,他会左右移动,玩家需要在恰当的时机点击屏幕,使其落在粉色地基之上。
粉色积木,这是小明搭建的地基,你需要在其之上堆叠绿色积木,注意:因为是积木,地基不是很稳固,地基在绿色积木的撞击下也可能会倾倒!
1.2 游戏机制(操作方法)
点击屏幕令绿色方块落下。稳稳落下后,会增加一分,出现新的绿色积木,需要继续点击来继续堆叠。
1.3 游戏目标
帮助小明叠得越高越好!最后当有绿色积木掉落在地面上时,游戏就会结束,屏幕上会显示你的最终分数,还有再来一次的按钮,点击再来一次便可重新开始叠积木!
2. 游戏设计细节
2.1 物理效果
游戏具有物理效果,若积木堆的歪,你堆起的积木可能会轰然倒塌!
2.2 开始界面
游戏具有一个开始界面,点击开始游戏进入游戏画面。
----------------------------------------以下为部分功能的具体实现逻辑-----------------------------------------------
主要有两个场景,场景一为开始游戏界面,场景二为堆积木游戏主界面。
精灵有:容器1(游戏结束提示版 + 再试一次按钮)、手绘数字(分数)、砖块绿(透明度为0,用于当作地板)、方块粉色(地基)、方块绿色(积木)。
变量则有五个:move(绿色积木左右移动的速度)、continue(判断叠在地基上后使用continue来指示继续生成积木)、loss(失败的标识)、isFall(用户点击屏幕后为1,积木落下)、score(用户的分数)。
主要代码逻辑都在绿色方块中。
当场景初始化时,初始化各个全局变量,随后是一个while循环,一直克隆自己,等待continue标识再克隆下一个。当loss==1时结束游戏。
游戏结束的判断则使用绿色方块碰撞到地面。将loss赋值为1,并通知游戏结束。
容器1在接收到通知后,便会移动到中心,底部的分数也会移动到中心。
克隆出来的积木则通过以下代码实现左右移动和判断下落。
最后等待一段时间后,若loss不为1,则增加score,设置continue=1以继续克隆。
遇到的问题:
在使用该平台进行开发时也遇到了一些问题。
比如在失败条件的判断上,我尝试使用相交、碰撞来判断积木在地面上都失败了,最后发现是在图层中我将砖块绿色(充当地板)给隐藏了,将其显示就有用了。我想要实现的隐藏不应该在图层这里隐藏,而应该在透明度异或代码中来隐藏。
总结:
在制作小游戏《叠积木》的过程中,我深入认识了游戏设计的结构和基本元素。游戏以简单的点击机制为核心,玩家需要精确控制绿色积木的落下,堆叠在粉色地基上以获得分数。通过低代码平台的使用,我掌握了基本的开发流程,并解决了碰撞检测中的问题。整体制作过程令我更加了解了游戏设计的理念与实现过程的重要性。