前往
大廳
主題

【Godot 遊戲製作 - GDScript】來做個簡易的點擊放置遊戲吧 - Part 2

魯德曼 | 2023-11-30 13:51:56 | 巴幣 1110 | 人氣 216

前言



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

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


點選 Scene底下的 Panel節點,然後再點擊紅框的圖案新增腳本,
這邊都照預設值使用就可以了。


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

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


接下來,把 Scene 選取底下的節點,按住 Ctrl,往右拉到編輯器內放開,
Godot就會幫你把一串程式碼編好了XD

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


接下來再新增幾個變數,之後寫方法會用到的。


因為我想把升級按鈕做成一開始看不到,當玩家cookies夠的時候才顯示。
只要在 ready() 裡面打上 node.hide(),然後按下 F6 ,
就可以看到遊戲畫面出來了。


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


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


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


按下F6,你就可以點擊 Cookie 增加數量了,
但是當數量達到升級按鈕門檻時,
升級按鈕出現,點了卻沒反應,這是因為我們還沒設計動作給他,
我覺得接著講篇幅會太長,就留到下一篇吧。



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

創作回應

相關創作

更多創作