Contents

如何在 Godot 中創建道具和收藏品

在 Godot 遊戲中添加道具和收藏品可以顯著增強玩家的體驗,使其更具吸引力和刺激性。強化道具可以賦予玩家特殊能力或暫時優勢,而收藏品可以作為獎勵,增加玩家的分數或提供其他好處。

幸運的是,由於其用戶友好的腳本語言和內置的物理引擎,Godot 中的製作能力和收藏品被證明是一個無縫的過程。

設置戈多遊戲

要啟動該過程,請利用 Godot 遊戲引擎開發二維遊戲環境。首先在引擎中創建一個新場景並向其中添加一個“CharacterBody2D”節點。在此節點中,合併一個“CollisionShape2D”組件,該組件具有矩形形式來象徵玩家的物理邊界,以及一個“Sprite2D”元素來描繪主角的視覺外觀。

該演示的源代碼可以通過 GitHub 上的存儲庫訪問,該存儲庫可以根據 MIT 許可證條款免費訪問,允許用戶在沒有任何成本或許可費用限制的情況下使用它。

為了使用 GDScript 以復雜的方式實現處理玩家移動和與屏幕邊界碰撞檢測的功能,可以使用以下代碼片段作為起點:gdscriptextends Nodevar speed_x=10 * (input.is_pressed(“left” )-input.is_pressed(“右”))var speed_y=10 * (input.is_pressed(“上”)-input.is_pressed(“下”))var 加速度=Vector2(speed_x, speed_y)var maxSpeed=50var onGround=falsevar groundedTime=0func _process(_delta: float): void{move_and_slide()}

 extends CharacterBody2D

var speed = 200

func _physics_process(delta):
    var velocity = Vector2()

    if Input.is_action_pressed('ui_right'):
        velocity.x \+= 1

    if Input.is_action_pressed('ui_left'):
        velocity.x -= 1

    if Input.is_action_pressed('ui_down'):
        velocity.y \+= 1

    if Input.is_action_pressed('ui_up'):
        velocity.y -= 1

    velocity = velocity.normalized() * speed
    move_and_collide(velocity * delta)

所提供的代碼使用戶能夠利用箭頭鍵在各個方向上導航。此外,它還通過速度矢量的標準化和可調節速度參數的應用來調節移動速率。

此外,有必要生成配備個性化碰撞區域和圖形表示的對抗實體。為了調節敵人的運動,可以採用與主角所使用的物理處理功能類似的方法。

/bc/images/simple-game-for-collectibles-in-godot.jpg

創建收藏品

收集硬幣等物品通常在視頻遊戲中發揮著不可或缺的作用,這些虛擬代幣可以增強玩家的整體體驗。在這種情況下,明智的做法是引入一種獨特且具有視覺吸引力的收藏硬幣,有助於提高玩家獲得後的分數。這個額外的積分值可能會達到二十點以上,從而為那些積極尋找這些特殊收藏品的人提供切實的獎勵。

為了在遊戲中創建可收藏的硬幣,首先在 Unity 編輯器中引入一個新場景。接下來,導入一個“Area2D”對像作為硬幣的物理表示。在此“Area2D”中,合併一個“CollisionShape2D”組件,該組件具有圓形輪廓以定義可碰撞區域的邊界。此外,附加“Sprite2D”資源以在屏幕上直觀地描繪硬幣的外觀。

事實上,為了實現此功能,您需要將上述 GDScript 代碼片段合併到您的播放器腳本中。這將使玩家角色能夠檢測到任何附近的交互對象並與之交互。

 extends CharacterBody2D

var score = 0

func _on_area_2d_body_entered(body):
    get_parent().get_node("Collectibles").queue_free()
    score \+= 20 

這段代碼利用“_on_area_2d_body_entered”信號來識別玩家角色何時穿透可收藏硬幣的碰撞場。如果發生這種情況,則認為玩家已經收集了硬幣,隨後通過“queue_free()”方法將其從視覺顯示中刪除。結果,玩家的分數增加了二十分。

/bc/images/collectibles-in-godot.jpg

創建強化道具

強化道具有可能通過給予玩家暫時的好處或能力來增強遊戲的刺激感。考慮實施一個在獲得後觸發 10 秒倒計時的道具。當玩家在此期間遇到對手時,他們將消滅敵人。

要在遊戲引擎中生成增強功能,我們必須首先在項目層次結構中建立一個新場景。接下來,我們應該在這個新創建的場景中實例化一個 Area2D 對象,它將作為啟動的空間容器。然後,我們可以在 Area2D 中插入一個 CollisionShape2D 組件,該組件定義了道具碰撞器的幾何屬性。此外,通過將 Sprite2D 實例添加到 Area2D 的同一組件屬性來包含視覺上吸引人的加電錶示也很重要。這些組件的組合將共同形成我們遊戲引擎中的加電對象。

通過將上述代碼片段附加到現有代碼下方,將其合併到您的播放器腳本中。

 extends CharacterBody2D

var timer_duration = 10
var power_up_active = false

func _on_powerups_body_entered(body):
    get_parent().get_node("Powerups").queue_free()
    power_up_active = true

    # Start the timer
    await get_tree().create_timer(10.0).timeout
    power_up_active = false

func _on_enemy_body_entered(body):
    if power_up_active:
        get_parent().get_node("Enemy").queue_free()
    else:
        queue_free() 

目前的代碼利用了

該函數通過使用“await”和“create_timer”啟動一個計時器,持續時間為十秒。在此期間,如果玩家角色與對手接觸,就會導致其被摧毀。

顯示收集的收藏品

在遊戲界面中結合累積的收藏品的視覺表示可以喚起用戶的成就感和進步感。實現此目的的合適方法是在顯示的左上象限中創建一個具有視覺吸引力且有效放置的標籤元素。

為了在玩家收集收藏品時修改標籤文本,請在您的項目中合併以下 GDScript 代碼片段:

 extends Label

func _ready():
    self.text = "Collectibles: 0" 

在 Player.gd 腳本上:

 extends CharacterBody2D

var bar

func _ready():
    bar = get_parent().get_node("Label")

func _physics_process(delta):
    bar.text = "Collectibles: " \+ str(score/20) 

當前的代碼修改標籤的外觀以反映已獲得的收藏品的總數,這可以通過將個人的累積積分除以二十來確定。

/bc/images/display-collectibles-in-godot.jpg

包括附加功能

人們可以考慮將額外的屬性或特性合併到一個人的加電和收藏系統中,以提升整體遊戲體驗。一些潛在的概念包括:

多級強化

可以將這些增強的不同程度的效力結合起來,而不是將選擇限制為單層的能力提升。為了說明這一點,標準加速器可以升級到超級開發者版本,這為用戶提供了更顯著的速度增加。

組合強化

考慮設計各種協同能力提升組合,每種組合都會在積累時產生獨特而強大的後果。激勵遊戲玩家思考和測試這些增強功能的各種類別,以獲得最佳收益。

限制能力提升

考慮實施冷靜期或限制玩家獲得特定提升的頻率。這些措施將為遊戲玩法引入選擇的一個方面,迫使用戶選擇使用此增強功能的最佳時間。

收藏品種

在平台遊戲中開發各種各樣的收藏品,這些物品在獲得後可提供不同的好處。這可能包括各種各樣的收藏品,這些收藏品可以在收集時賦予額外的生命、暫時的增強或激活獨特的遊戲功能。

實施 Power-Ups 和收藏品的最佳實踐

在 Godot 遊戲中加入道具和收藏品時,必須遵守某些最佳實踐,以獲得最佳性能和用戶滿意度。

平衡和遊戲測試

為了保持遊戲的平衡性和公平性,徹底測試所有道具和收藏品非常重要,確保其效果和獎勵得到適當調整,為玩家提供愉快的遊戲體驗。

視覺和音頻反饋

使用美觀的符號或圖形來表示能力提升和收藏品。此外,結合適當的無版權音頻提示,在玩家獲取這些元素時提供令人滿意的反饋。

用戶界面 (UI)

製作一個優雅而簡單的用戶界面,以清晰的方式呈現有關能力提升和收藏品的相關數據。結合視覺元素來指示當前激活的道具的持續時間以及玩家獲得的收藏品的累積數量。此外,納入對於增強整體遊戲體驗至關重要的任何其他相關信息。

### 一致性

確保道具和收藏品之間的一致性對於保持統一的遊戲體驗至關重要,因為它反映了對中心主題和遊戲機制規則的遵守。

保存並加載

為了提供流暢的遊戲體驗並鼓勵繼續玩遊戲,重要的是要加入一項功能來保存和加載玩家在任何持久的遊戲元素(例如能力提升或收藏品)方面的進度。這將有助於確保玩家即使選擇暫時退出遊戲也能保留進度,從而促進他們將來重新訪問遊戲的願望。

遵循這些推薦的方法將允許開發特殊的能力提升和收藏系統,當將其集成到 Godot 的遊戲玩法中時,有可能提升其整體娛樂價值並為玩家提供更高的滿意度。

通過道具和收藏品讓 Godot 遊戲更具吸引力

事實證明,在 Godot 遊戲中加入能量道具和收藏品可以為遊戲玩家提供令人興奮的短期利益,從而提高玩家的參與度和重玩價值。

通過深思熟慮的規劃和執行能力提升和收藏品,我們可以為遊戲玩家營造一種越來越迷人和令人滿意的遊戲體驗。 Godot 的適應性和簡單性有助於創建引人注目的能力提升和收藏品,以補充遊戲的核心機制和整體滿意度。