動(dòng)態(tài)生成關(guān)卡選擇按鈕

在制作一些多關(guān)卡游戲時(shí),如果關(guān)卡數(shù)過(guò)多,關(guān)卡選擇按鈕的擺放就會(huì)費(fèi)時(shí)間。 本教程將為大家提供一種自動(dòng)生成關(guān)卡按鈕的方法。

點(diǎn)我下載工程文件
點(diǎn)我下載素材
布置場(chǎng)景
先創(chuàng)建背景圖?(精靈組件)

接著創(chuàng)建關(guān)卡選擇按鈕?(按鈕組件)


創(chuàng)建上一頁(yè)/下一頁(yè)按鈕?(按鈕組件)

因?yàn)槲覀円檬录韯?dòng)態(tài)創(chuàng)建關(guān)卡選擇按鈕,所以先將按鈕實(shí)例放入實(shí)例倉(cāng)庫(kù)場(chǎng)景。

調(diào)整按鈕、按鈕字體的大小

將上一頁(yè)/下一頁(yè)拖入場(chǎng)景

添加變量
為關(guān)卡選擇按鈕添加兩個(gè)實(shí)例變量
跳轉(zhuǎn)場(chǎng)景:字符型,代表該按鈕所對(duì)應(yīng)的場(chǎng)景
編號(hào):數(shù)值型,用于動(dòng)態(tài)生成時(shí)按鈕的排列。

添加全局變量
當(dāng)前頁(yè):當(dāng)前位于關(guān)卡選擇的第幾頁(yè)
列數(shù):一頁(yè)最多能顯示的列數(shù),本教程中為10列
行數(shù):一頁(yè)最多能顯示的行數(shù),本教程中為4行
總關(guān)卡數(shù)量: 關(guān)卡的總數(shù)量,本教程中為50
已解鎖關(guān)卡數(shù):已經(jīng)解鎖的關(guān)卡數(shù)量,本教程中為25

實(shí)現(xiàn)邏輯
首先,當(dāng)場(chǎng)景開始時(shí),我們需要初始化當(dāng)前頁(yè)變量為1,并使用動(dòng)作組刷新按鈕來(lái)更新場(chǎng)景內(nèi)的按鈕

接下來(lái),我們實(shí)現(xiàn)刷新按鈕動(dòng)作組的邏輯

在創(chuàng)建新的按鈕之前,我們需要先銷毀掉舊的按鈕

然后我們?cè)谧邮录聞?chuàng)建4個(gè)局部變量
local_生成編號(hào): 控制按鈕生成的編號(hào)
local_初始坐標(biāo)x: 第一個(gè)按鈕的x坐標(biāo)
local_初始坐標(biāo)y: 第一個(gè)按鈕的Y坐標(biāo)
local_生成間隔: 按鈕之間的間隔

接下來(lái),根據(jù)當(dāng)前頁(yè)數(shù)以及一頁(yè)可顯示數(shù)量,設(shè)置按鈕起始編號(hào)

接下來(lái),我們循環(huán)創(chuàng)建按鈕



每次循環(huán)列,local_生成編號(hào)+1

如果local_生成編號(hào)小于等于總關(guān)卡數(shù)量,則創(chuàng)建按鈕

x坐標(biāo):local_初始坐標(biāo)x + (local_生成間隔 * loopindex(“循環(huán)列”))
y坐標(biāo): local_初始坐標(biāo)y + (local_生成間隔 * loopindex(“循環(huán)行”))

設(shè)置剛創(chuàng)建出來(lái)的按鈕的文本、實(shí)例變量值:
按鈕文字:str(local_生成編號(hào))
編號(hào):local_生成編號(hào)
跳轉(zhuǎn)場(chǎng)景: “場(chǎng)景”&local_生成編號(hào)

創(chuàng)建子事件,如果當(dāng)前生成編號(hào)大于已解鎖關(guān)卡數(shù),將按鈕禁用

如果local_生成編號(hào)大于總關(guān)卡數(shù)量,則停止生成按鈕并且退出循環(huán)

同樣在動(dòng)作組中我們控制翻頁(yè)按鈕的顯示
ceil(總關(guān)卡數(shù)量/(行數(shù)*列數(shù)))

以上便是動(dòng)作組的全部邏輯,整體事件圖如下:

現(xiàn)在預(yù)覽游戲,就可以看到場(chǎng)景中生成了若干按鈕。接下來(lái)我們要實(shí)現(xiàn)翻頁(yè)功能。
翻頁(yè)的邏輯很簡(jiǎn)單,當(dāng)點(diǎn)擊按鈕時(shí),修改當(dāng)前頁(yè),并重新調(diào)用動(dòng)作組

最后,實(shí)現(xiàn)跳轉(zhuǎn)功能


我們只需按照按鈕的實(shí)例變量命名場(chǎng)景即可

整體事件表如下圖:


?點(diǎn)擊下載全能無(wú)需編程的喚境引擎!? ???
https://www.evkworld.cn/?c=600005&sc=600019&auto=1