制作多关卡游戏,如果关卡太多,放置关卡选择按钮会花费很多时间。如何用evkworld调用环境引擎实现关卡选择?
先创建一个背景图片?(向导组件)
然后创建级别选择按钮?(按钮组件)
创建上一个/下一个按钮?(按钮组件)
因为我们希望用事件表动态创建级别选择按钮,所以我们首先将按钮实例放入实例仓库场景中。
调整按钮的大小和按钮字体。
将上一页/下一页拖到场景中
添加变量
为级别选择按钮添加两个实例变量。
跳转场景:字符型,代表按钮对应的场景。
Number:数值型,用于动态生成时按钮的排列。
添加全局变量
当前页面:当前哪个页面位于级别选择中?
列数:一个页面上可以显示的最大列数,在本教程中是10。
行数:一页可以显示的最大行数,在本教程中是4行。
总级数:总级数,在本教程中为50。
解锁级数:解锁级数,在本教程中为25。
实现逻辑
首先,当场景开始时,我们需要将当前页面变量初始化为1,并使用动作组刷新按钮来更新场景中的按钮。
接下来,我们实现刷新按钮操作组的逻辑。
在创建新按钮之前,我们需要销毁旧按钮。
然后我们在子事件下创建四个局部变量。
Local_ Generation Number:控制按钮生成的编号。
Local_ initial坐标x:第一个按钮的x坐标。
Local_ initial坐标y:第一个按钮的y坐标。
Local_ build interval:按钮之间的间隔。
接下来,根据当前的页数和一页可以显示的数量,设置按钮的起始数。
接下来,我们在一个循环中创建按钮。
每个列循环的Local_ generated number +1。
如果local_ generation编号小于或等于总级别数,则创建一个按钮。
x坐标:local_ initial坐标x+(local _ generation interval * loop index("循环列"))
y坐标:local_ initial坐标y+(local _ generation interval * loop index)。
设置新创建的按钮的文本和实例变量值:
按钮文本:str(本地代编号)
编号:本地代编号
&场景:《场景》& amp本地世代号
创建一个子事件,如果当前层代数大于解锁级别数,则禁用该按钮。
如果local_ generation数大于总层数,则停止生成按钮并退出循环。
同样在动作组中,我们控制翻页按钮的显示。
Ceil(总层数/(行数*列数))
以上是动作组的全部逻辑,整体事件图如下:
现在预览游戏,您可以看到场景中生成了几个按钮。接下来,我们需要实现翻页功能。
翻页的逻辑很简单。当单击按钮时,当前页面被修改,操作组被再次调用。
最后实现跳转功能。
我们只需要根据按钮的实例变量来命名场景。
整个事件表如下: