Lägg till incitament för ditt spels huvudväg eller sidouppdrag, med givande samlarföremål.

Att lägga till power-ups och samlarföremål till ditt Godot-spel kan avsevärt förbättra spelarens upplevelse, vilket gör det mer engagerande och spännande. Power-ups kan ge speciella förmågor eller tillfälliga fördelar till spelaren, medan samlarföremål kan tjäna som belöningar, öka spelarens poäng eller ge andra fördelar.

Lyckligtvis är det enkelt att skapa power-ups och samlarföremål i Godot, tack vare dess intuitiva skriptspråk och inbyggda fysikmotor.

Konfigurera Godot-spelet

För att komma igång, skapa ett 2D-spel i spelmotorn Godot och ställ in spelarkaraktären. Skapa en ny scen och lägg till en CharacterBody2D nod. Inuti CharacterBody2D, Lägg till en CollisionShape2D med en rektangelform för att representera spelarens kollisionsområde och en Sprite2D för att visa spelarens karaktär.

Koden för denna demo finns tillgänglig i dess GitHub-förråd och är gratis för dig att använda under MIT-licensen.

instagram viewer

Skriv nu GDScript-koden för att hantera spelarrörelser och kollisioner med skärmgränserna. Här är den fullständiga koden för spelarrörelse:

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)

Denna kod låter spelaren flytta vänster, höger, upp och ner med hjälp av piltangenterna. Det säkerställer också att spelaren inte rör sig för snabbt genom att normalisera hastighetsvektorn och tillämpa en hastighetsfaktor.

Skapa dessutom fiendeobjekt med sina egna kollisionsområden och sprites. För att hantera fiendens rörelse kan du använda en liknande _fysikprocess fungera som spelare.

Skapa samlarföremål

Samlarföremål är viktiga i många spel, och en vanlig typ är mynt. Skapa ett samlarmynt som ökar spelarens poäng med 20 poäng när det samlas in.

Skapa först en ny scen och lägg till en Area2D nod som samlarmynt. Inuti Area2D, Lägg till en CollisionShape2D med en cirkelform som representerar kollisionsområdet och a Sprite2D för att visa myntet.

Lägg sedan till följande GDScript-kod till spelarskriptet:

extends CharacterBody2D

var score = 0

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

Denna kod använder _on_area_2d_body_entered signal för att upptäcka när spelarens karaktär kommer in i samlarmyntets kollisionsområde. Om den upptäcker spelarkaraktären samlar de ihop myntet (uppropet till queue_free() tar bort den från scenen) och ökar deras poäng med 20 poäng.

Skapa power-ups

Power-ups kan lägga till spänning till ditt spel genom att ge spelaren tillfälliga fördelar eller förmågor. Skapa en power-up som aktiverar en 10-sekunders timer när den samlas in. Om spelaren rör vid en fiende inom den tiden kommer de att förstöra fienden.

Skapa en power-up genom att skapa en ny scen och lägga till en Area2D nod. Inuti Area2D, Lägg till en CollisionShape2D med en rektangelform och en Sprite2D för att visa uppstarten.

Lägg nu till följande kod till ditt spelarskript:

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()

Denna kod använder _on_powerups_body_entered signal för att upptäcka när spelarkaraktären hämtar kraften. När de gör det tar den bort power-upen från scenen och ställer in power_up_active variabel till sann.

Funktionen startar slutligen en timer med hjälp av vänta och create_timer, med en varaktighet på 10 sekunder. Under denna tid, om spelarkaraktären vidrör en fiende, förstör de den.

Visa samlade samlade föremål

Att visa antalet samlarföremål spelaren har samlat kan ge en känsla av prestation och framsteg. För att göra detta, börja med att skapa en Märka noden och placera den i det övre vänstra hörnet av skärmen.

Lägg sedan till följande GDScript-kod för att uppdatera etiketttexten när spelaren samlar in ett samlarobjekt:

extends Label

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

På Player.gd-skript:

extends CharacterBody2D

var bar

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

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

Denna kod uppdaterar etikettens text med antalet samlade föremål som erhållits, vilket du kan beräkna genom att dividera spelarens poäng med 20.

Inklusive ytterligare funktioner

Det finns flera andra funktioner du kan lägga till ditt power-ups och samlarföremålssystem för att förbättra ditt spel ytterligare. Här är några idéer:

Flera nivåer av power-ups

Istället för att bara ha en typ av power-up kan du introducera olika nivåer av power-ups som ger allt kraftfullare förmågor. Till exempel kan du uppgradera en grundläggande hastighetsförstärkning till en supersnabb uppstart som gör spelaren ännu snabbare.

Kombinerade power-ups

Skapa kombinationer av power-ups som erbjuder unika och kraftfulla effekter när de samlas ihop. Uppmuntra spelare att lägga strategi och experimentera med olika power-up-kombinationer för maximal fördel.

Begränsande power-ups

Implementera en nedkylning eller en gräns för hur ofta en spelare kan samla in en specifik power-up. Detta lägger till ett element av beslutsfattande för spelaren, eftersom de måste välja rätt ögonblick för att aktivera power-up.

Samlarvarianter

Designa olika typer av samlarföremål med olika belöningar. Vissa samlarföremål kan ge extra liv, tillfälliga bufflar eller låsa upp specialfunktioner ditt plattformsspel.

Bästa metoder för att implementera power-ups och samlarföremål

När du implementerar power-ups och samlarobjekt i ditt Godot-spel, överväg följande bästa praxis:

Balans och speltestning

Testa dina power-ups och samlarföremål utförligt för att säkerställa att de inte skapar obalanser i spelet. Justera effekterna och belöningarna för att ge spelarna en rättvis och njutbar upplevelse.

Visuell och ljudåterkoppling

Använd tydliga och visuellt tilltalande ikoner eller sprites för att representera power-ups och samlarföremål. Dessutom, inkludera lämpliga upphovsrättsfria ljudeffekter för att ge tillfredsställande feedback när spelare samlar in dem.

Användargränssnitt (UI)

Designa ett rent och intuitivt användargränssnitt som visar relevant information om power-ups och samlarföremål. Visa den återstående tiden för aktiva power-ups, antalet samlade samlade föremål och alla andra relevanta detaljer.

Konsistens

Se till att power-ups och samlarföremål är i linje med det övergripande temat och mekaniken i ditt spel. Konsekvens i design och implementering hjälper till att upprätthålla en sammanhängande spelupplevelse.

Spara och ladda

Om ditt spel innehåller power-ups eller samlarföremål som kvarstår under spelsessioner, implementera ett spara och ladda system för att behålla spelarens framsteg. Detta säkerställer en sömlös upplevelse och motiverar spelare att återvända till spelet.

Genom att följa dessa bästa praxis kan du skapa ett polerat och engagerande power-up och samlarsystem som berikar ditt Godot-spels spelande, vilket gör det roligare för spelarna.

Gör Godot-spel mer engagerande med power-ups och samlarföremål

Att lägga till power-ups och samlarföremål till ditt Godot-spel kan avsevärt öka dess engagemang och omspelbarhet. Power-ups ger spelare spännande och tillfälliga fördelar.

Genom att noggrant designa och implementera power-ups och samlarföremål kan du skapa en mer uppslukande och njutbar spelupplevelse för dina spelare. Godots flexibilitet och enkelhet gör det enkelt för spelutvecklare att skapa engagerande power-ups och samlarföremål som förbättrar spelets mekanik och njutning.