ETH官方钱包

前往
大廳
主題

【Godot 遊戲製作 - GDScript】來做個(gè)簡易的點(diǎn)擊放置遊戲吧 - Part 2

魯?shù)侣?/a> | 2023-11-30 13:51:56 | 巴幣 1110 | 人氣 341

前言



上一篇我們做好了遊戲畫面的設(shè)定,
接下來就要編寫程式碼,
讓遊戲依照設(shè)計(jì)好的邏輯動(dòng)起來囉  o.o /

對(duì)於程式碼解說的部分,
我會(huì)盡量以好理解的方式來說明,
如果有錯(cuò)誤的地方,歡迎留言指教。


點(diǎn)選 Scene底下的 Panel節(jié)點(diǎn),然後再點(diǎn)擊紅框的圖案新增腳本,
這邊都照預(yù)設(shè)值使用就可以了。


這就是編輯器畫面了,非常的乾淨(jìng)(X

func _ready() -> void :
func : 是一個(gè)關(guān)鍵字,建立一個(gè)方法( method )前面一定要有 func,
就像是 Python 的 def一樣。
ready() : 這個(gè)方法裡的程式碼,在第一次進(jìn)入場景樹時(shí)會(huì)執(zhí)行一次。
我們程式碼現(xiàn)在綁在主場景,意思就是 ready() 內(nèi)的程式在我們開遊戲時(shí)就會(huì)執(zhí)行一次。
process() : 這個(gè)方法裡的程式碼,會(huì)在每幀執(zhí)行一次。
void : 表示這個(gè)方法沒有回傳值。


接下來,把 Scene 選取底下的節(jié)點(diǎn),按住 Ctrl,往右拉到編輯器內(nèi)放開,
Godot就會(huì)幫你把一串程式碼編好了XD

@onready var timer: Timer = $Timer
@onready : 在宣告變數(shù)時(shí),前面加上@onready,可以讓變數(shù)在進(jìn)入場景時(shí)才初始化
var : 這是宣告變數(shù)用的關(guān)鍵字
timer: Timer : 冒號(hào)前面的 timer 是變數(shù)名稱,冒號(hào)後面的 Timer 是用來指定這個(gè)變數(shù)存放指定的型別,
不想指定型別的時(shí)候也可以把 : Timer 拿掉。
另外,也可能會(huì)有人寫成 @onready var timer := $Timer ,
這樣的話會(huì)由 Godot 依照你給的值來決定型別。
$Timer : 實(shí)際上就等於 get_node( Timer )。
這邊的程式碼就是在把 Node 給實(shí)體化,之後才能對(duì)他們做各種操作。


接下來再新增幾個(gè)變數(shù),之後寫方法會(huì)用到的。


因?yàn)槲蚁氚焉?jí)按鈕做成一開始看不到,當(dāng)玩家cookies夠的時(shí)候才顯示。
只要在 ready() 裡面打上 node.hide(),然後按下 F6 ,
就可以看到遊戲畫面出來了。


既然剛剛把按鈕 hide() ,接下來就要設(shè)定門檻,
通過門檻後讓按鈕顯示出來。


接著,要讓玩家點(diǎn)Cookie的時(shí)候增加cookies計(jì)數(shù)。
先到 Scene 選擇 CookiesButton,
之後在 Node -> Signal 底下找到 pressed()
點(diǎn)兩下會(huì)跳出一個(gè)視窗,
這邊都先不用改,直接按 connect就好。


剛剛按下 connect 之後,Godot會(huì)在編輯器新增一個(gè)方法,
方法裡就是放按下按鈕要執(zhí)行的動(dòng)作。
在第45行,我用格式化字串的方式來寫,這樣會(huì)比較好看,
詳細(xì)說明可以參考官方文件


按下F6,你就可以點(diǎn)擊 Cookie 增加數(shù)量了,
但是當(dāng)數(shù)量達(dá)到升級(jí)按鈕門檻時(shí),
升級(jí)按鈕出現(xiàn),點(diǎn)了卻沒反應(yīng),這是因?yàn)槲覀冞€沒設(shè)計(jì)動(dòng)作給他,
我覺得接著講篇幅會(huì)太長,就留到下一篇吧。



謝謝看到這邊的你,
希望這篇教學(xué)也能讓你有所收穫。

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作