物理小游戏
平台提供了物理行为,具体行为请参考使用手册。本章节介绍利用物理行为来做一款简单的休闲解谜小游戏。点击这里看下最终的游戏。游戏最主要的是利用物理行为,其中还会用到容器。容器的用法也可以查看手册。
搭建场景
素材全部取自素材库里面提供的官方素材。游戏一共分为4个关卡,需要新建四个游戏场景来完成。
首先看第一关,需要一个小Y,作为游戏的主角。绿色是横版,黄色块是砖块,灰色的地砖。其中我们需要分包给这个元素加上物理行为。
- 小Y:开启物理,设置轮廓为素材轮廓,可倾倒
- 绿色:开启物理,设置轮廓为矩形轮廓,不可倾倒
- 黄色砖块(方块-黄):开启物理,设置轮廓为矩形轮廓,不可倾倒
- 灰色的地砖(tile_wall):不加物理行为
- 背景:不加物理
- 提示文字:不加物理
综上,一共就三个对象要加上物理行为,在属性栏配置对应的属性。
上图的是小Y的物理属性。
添加背景,山和云,设置宽高铺满整个画布,最好要超出一些,避免在一些大尺寸的手机出现黑边。然后给背景添加一个“循环滚动”的行为。
这样运动游戏的时候就能够让背景自己循环运动起来。运动一下游戏看看会怎么样。
除了背景正常循环,发现加了物理的对象都掉出了视觉区域,是因为还没有做地板。
地板
那么接下来导入一个白色的方块并且重命名:成功地块。意思是当小Y碰到这个对象就过关了。
给白色块加上物理行为,设置轮廓为矩形轮廓,需要注意的是设置为静态刚体。这样就不会受重力的影响往下坠了。可以上面方块一个支撑,作为地板。
实际的游戏视觉效果并需要看到这个白色块,因此可以设置透明度为0。但是不要隐藏,如果隐藏了,意味着物理作用就消失了。那么我们需要用灰色的地砖(tile_wall)做为地板,在属性栏设置为填充类型为:平铺。
注意:将白色块和地砖的上边缘重叠,边缘对齐,作为地平面。运行游戏,上面的砖块就能够顺利的落在地板上。
好奇的同学可能会问,为什么要用一个透明的白块替代砖块呢。当然你也可以直接用灰色地砖添加物理行为,但是游戏的所有关卡并不都是碰到地砖就要过关,其他的关卡可能是碰到其他元素。这里的白色透明块更像是一个通用过关条件。看后面的关卡就会明白这样做的用途。
用户提示
在场景的顶部,写一个简单的说明文字告诉用户怎么玩。
游戏逻辑
绿色和黄色块都是能够被点击的,点击后消失。为了让点击的反馈更强一点,可以添加一个粒子效果插件。
粒子效果
添加完后,设置粒子插件的属性如下:
添加完粒子后,将它拖到画布外,因为只有游戏点击的时候需要展示。
点击事件
选中黄色块和绿色块,添加一个“当精灵被点击”的事件,代码如下
在点击的时候,发送一个通知,通知所有的人播放粒子效果。那么这个通知只要设置粒子插件响应就行。选中粒子插件,添加如下的代码:
当收到通知的时候响应,显示自己,然后移动到手指点击的位置,并且播放粒子效果,等待0.5s后隐藏自己。
主角逻辑
砖块消失的逻辑有了,那么要判断主角过关和失败的逻辑,选中主句小Y。因为地板不是完整的,有悬崖部分,可也简略判断,当小Y不在屏幕内,则游戏是失败了。添加以下代码:
当游戏失败的时候,发送一个通知,显示失败的提示。为什么要发通知,而不是直接操作失败提示的元素。因为小Y是多个关卡复用的,必须要考虑通用性,不可能每一个场景都去写这个失败的逻辑。这里还需要设置一个变量“游戏结束”为1,后面会有用到。那么谁接受“闯关失败”的通知呢,当然是失败的弹窗。
失败弹窗
我们可以看下失败弹窗的组成:
- 背景
- 按钮
- 按钮文字
这其实是一个整体,当游戏失败的时候,这三个元素都需要显示。为了节省逻辑,可以将这几个元素组合为一个容器。只需要显示和隐藏容器就行。
在层级管理的面板按住shift选中三个图层,然后点击右侧三个点按钮,在弹出的菜单选择“将选中图层组成容器”。组成容器之后,命名为失败。选中失败容器,添加以下逻辑。
就是显示容器,然后添加一个移动的动画到屏幕中间。
在编辑器将容器拖动到画布下方,也可以直接设置容器的Y坐标为-1000。
容器的按钮,失败了,再完一次,这里简化,直接重启游戏。
需要注意的是,所有元素都默认会接受事件,这样意味着,上层的元素会阻止下层级的事件响应。这里按钮的文本就会阻止按钮的点击响应。因此可以给文本设置一个逻辑如下,忽略文本的事件。
成功弹窗
同理,弹窗的UI更失败的是一样的做法,这里就不复述。那么成功的条件是什么呢。选中小Y对象。
这里逻辑做了一些简化,当小Y碰到成功地块的时候,且2s后小Y的速度小于1,并且游戏没有触发其他因素导致游戏结束,那么就认为过关了。这个时候发送一个成功的通知。成功了则可以跳转到下一关。
更多关卡
更多关卡,制作流程与这个类似,我们只制作了四个关卡,更多精彩需要你的参与。 官方案例