在制作一些多关卡游戏时,如果关卡数过多,关卡选择按钮的摆放就会费时间。 本教程将为士候眨塄大家提供一种自动生成关卡按钮的方法。
工具/原料
唤境引擎
动态生成关卡选择按钮
1、效果预览
布置场景
1、先创建背景图(精灵组件)
2、接着创建关卡选择按钮(按钮组件)
3、创建上一页/下一页按钮(按钮组件)
4、因为我们要用事件表动态创建关卡选择按钮,所以先将按钮实例放入实例仓库场景。
5、调整按钮、按钮字体的大小
6、将上一页/下一页拖入场景
添加变量
1、为关卡选择按钮添加两个实例变量跳转场景:字符型,代表该按钮所对应的场景编号:数值型,用于动态生成时按钮的排列。
2、添加全局变量当前页:当前位于关卡选择的第几页列数:一页最多能显示的列数,本教程中为10列行数:一页最多能显示的行数,本教程中为4行总关卡数量: 关卡的总数量,本教程中为50已解锁关卡数:已经解锁的关卡数量,本教程中为25
实现逻辑
1、首先,当场景开始时,我们需要初始化当前页变量为1,并使用动作组刷新按钮来更新场景内的按钮
2、接下来,我们实现刷新按钮动作组的逻辑
3、在创建新的按钮之前,我们需要先销毁掉旧的按钮
4、然后我们在子事件下创建4个局部变量local_生成编号: 控制按钮生成的编号local_初始坐标x: 第一个按钮的x坐标loca造婷用痃l_初始坐标y: 第一个按钮的Y坐标local_生成间隔: 按钮之间的间隔
5、接下来,根据当前页数以及一页可显示数量,设置按钮起始编号
6、接下来,我们循环创建按钮
7、每次循环列,local_生成编号+1
8、如果local_生成编号小于等于总关卡数量,则创建按钮
9、x坐标:local_初始坐标x + (local_生成间隔 * loopindex(“循环列”))y坐标: local_初始坐标y + (local_生成间隔 * loopindex(“循环行”))
10、设置刚创建出来的按钮的文本、实麻质跹礼例变量值:按钮文字:str(local_生成编号)编号:local_生成编号跳转场景: “场景”&local_生成编号
11、创建子事件,如果当前生成编号大于已解锁关卡数,将按钮禁用
12、如果local_生成编号大于总关卡数量,则停止生成按钮并且退出循环
13、同样在动作组中我们控制翻页按钮的显示ceil(总关卡数量/(行数*列数))
14、以上便是动作组的全部逻辑,整体事件图如下:
15、现在预览游戏,就可以看到场景中生成了若干按钮。接下来我们要实现翻页功能。翻页的逻辑很简单,当点击按钮时,修改当前页,并重新调用动作组
16、最后,实现跳转功能
17、我们只需按照按钮的实例变量命名场景即可
18、整体事件表如下图: