在制作一些多关卡游戏时,如果关卡数过多,关卡选择按钮的摆放就会费时间。 本教程将为大家提供一种自动生成关卡按钮的方法。
点我下载工程文件
点我下载素材
你可以观看视频学习,也可以下拉查看文字教程
动态生成关卡按钮的教程视频
先创建背景图 (精灵组件)
接着创建关卡选择按钮 (按钮组件)
创建上一页/下一页按钮 (按钮组件)
因为我们要用事件表动态创建关卡选择按钮,所以先将按钮实例放入实例仓库场景。
调整按钮、按钮字体的大小
将上一页/下一页拖入场景
为关卡选择按钮添加两个实例变量
添加全局变量
注:新版引擎界面的全局变量在侧边栏里,与旧版相比,只是位置改变,功能无差。
首先,当场景开始时,我们需要初始化当前页变量为1,并使用动作组刷新按钮来更新场景内的按钮
接下来,我们实现刷新按钮动作组的逻辑
在创建新的按钮之前,我们需要先销毁掉旧的按钮
然后我们在子事件下创建4个局部变量
接下来,根据当前页数以及一页可显示数量,设置按钮起始编号
接下来,我们循环创建按钮
每次循环列,local_生成编号+1
如果local_生成编号小于等于总关卡数量,则创建按钮
x坐标:local_初始坐标x + (local_生成间隔 * loopindex(“循环列”))
y坐标: local_初始坐标y + (local_生成间隔 * loopindex(“循环行”))
设置刚创建出来的按钮的文本、实例变量值:
创建子事件,如果当前生成编号大于已解锁关卡数,将按钮禁用
如果local_生成编号大于总关卡数量,则停止生成按钮并且退出循环
同样在动作组中我们控制翻页按钮的显示
ceil(总关卡数量/(行数*列数))
以上便是动作组的全部逻辑,整体事件图如下:
现在预览游戏,就可以看到场景中生成了若干按钮。接下来我们要实现翻页功能。
翻页的逻辑很简单,当点击按钮时,修改当前页,并重新调用动作组
最后,实现跳转功能
我们只需按照按钮的实例变量命名场景即可
整体事件表如下图: