Tilføj incitamenter til dit spils hovedsti eller sidemissioner med belønnende samleobjekter.

Tilføjelse af power-ups og samleobjekter til dit Godot-spil kan forbedre spillerens oplevelse betydeligt, hvilket gør det mere engagerende og spændende. Power-ups kan give specielle evner eller midlertidige fordele til spilleren, mens samleobjekter kan tjene som belønninger, øge spillerens score eller give andre fordele.

Heldigvis er det ligetil at skabe power-ups og samleobjekter i Godot takket være dets intuitive scriptsprog og indbyggede fysikmotor.

Opsætning af Godot-spillet

For at komme i gang skal du oprette et 2D-spil i Godot spilmotoren og opsæt spillerkarakteren. Opret en ny scene og tilføj en CharacterBody2D node. Inde i CharacterBody2D, Tilføj en CollisionShape2D med en rektangelform, der repræsenterer spillerens kollisionsområde og en Sprite2D for at vise spillerens karakter.

Koden til denne demo er tilgængelig i dens GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Skriv nu GDScript-koden for at håndtere spillerbevægelser og kollisioner med skærmgrænserne. Her er den komplette kode til spillerbevægelse:

instagram viewer

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)

Denne kode giver spilleren mulighed for at flytte til venstre, højre, op og ned ved hjælp af piletasterne. Det sikrer også, at spilleren ikke bevæger sig for hurtigt ved at normalisere hastighedsvektoren og anvende en hastighedsfaktor.

Derudover kan du skabe fjendtlige objekter med deres egne kollisionsområder og sprites. For at håndtere fjendens bevægelse kan du bruge en lignende _fysikproces fungere som afspiller.

Oprettelse af samleobjekter

Samleobjekter er essentielle i mange spil, og en almindelig type er mønter. Opret en samlemønt, der øger spillerens score med 20 point, når den indsamles.

Først skal du oprette en ny scene og tilføje en Area2D node som samlemønt. Inde i Area2D, Tilføj en CollisionShape2D med en cirkelform til at repræsentere kollisionsområdet og en Sprite2D for at vise mønten.

Tilføj derefter følgende GDScript-kode til afspillerscriptet:

extends CharacterBody2D

var score = 0

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

Denne kode bruger _på_område_2d_body_entered signal til at registrere, når spillerens karakter kommer ind i samlemøntens kollisionsområde. Hvis den opdager spillerens karakter, samler de mønten (opkaldet til kø_fri() fjerner det fra scenen) og øger deres score med 20 point.

Oprettelse af power-ups

Power-ups kan tilføje spænding til dit spil ved at give spilleren midlertidige fordele eller evner. Opret en power-up, der aktiverer en 10-sekunders timer, når den indsamles. Hvis spilleren rører en fjende inden for den tid, vil de ødelægge fjenden.

For at skabe power-up'en skal du lave en ny scene og tilføje en Area2D node. Inde i Area2D, Tilføj en CollisionShape2D med en rektangelform og en Sprite2D for at vise opstart.

Tilføj nu følgende kode til dit afspillerscript:

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

Denne kode bruger _on_powerups_body_entered signal for at detektere, når spillerkarakteren samler power-up. Når de gør det, fjerner den power-up fra scenen og indstiller power_up_active variabel til sand.

Funktionen starter endelig en timer vha vente og create_timer, med en varighed på 10 sekunder. I løbet af denne tid, hvis spillerens karakter rører en fjende, ødelægger de den.

Viser indsamlede samleobjekter

Visning af antallet af samleobjekter, som spilleren har samlet, kan tilføje en følelse af præstation og fremskridt. For at gøre dette skal du starte med at oprette en Etiket node og placere den i øverste venstre hjørne af skærmen.

Tilføj derefter følgende GDScript-kode for at opdatere etiketteksten, hver gang afspilleren samler et samleobjekt:

extends Label

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

På Player.gd script:

extends CharacterBody2D

var bar

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

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

Denne kode opdaterer etikettens tekst med antallet af opnåede samleobjekter, som du kan beregne ved at dividere spillerens score med 20.

Inklusiv yderligere funktioner

Der er forskellige andre funktioner, du kan tilføje til dit power-ups og samleobjekter for at forbedre dit spil yderligere. Her er et par ideer:

Flere niveauer af power-ups

I stedet for kun at have én type power-up, kan du introducere forskellige niveauer af power-ups, der giver stadig stærkere evner. For eksempel kan du opgradere en grundlæggende speed boost power-up til en super-speed power-up, der gør afspilleren endnu hurtigere.

Kombineret power-ups

Skab kombinationer af power-ups, der tilbyder unikke og potente effekter, når de er samlet sammen. Tilskynd spillere til at strategisere og eksperimentere med forskellige power-up-kombinationer for at opnå maksimal fordel.

Begrænsning af power-ups

Implementer en nedkøling eller en grænse for, hvor ofte en spiller kan indsamle en specifik power-up. Dette tilføjer et element af beslutningstagning for spilleren, da de skal vælge det rigtige tidspunkt for at aktivere power-up.

Samlevarianter

Design forskellige typer samleobjekter med forskellige belønninger. Nogle samleobjekter kan give ekstra liv, midlertidige buffs eller låse op for særlige funktioner dit platformspil.

Bedste praksis for implementering af power-ups og samleobjekter

Når du implementerer power-ups og samleobjekter i dit Godot-spil, skal du overveje følgende bedste praksis:

Balance og Playtesting

Test dine power-ups og samleobjekter grundigt for at sikre, at de ikke skaber ubalancer i spillet. Juster effekterne og belønningerne for at give spillerne en retfærdig og fornøjelig oplevelse.

Visuel og lydfeedback

Brug klare og visuelt tiltalende ikoner eller sprites til at repræsentere power-ups og samleobjekter. Derudover inkludere passende ophavsretsfri lydeffekter at give tilfredsstillende feedback, når spillere indsamler dem.

Brugergrænseflade (UI)

Design en ren og intuitiv brugergrænseflade, der viser relevant information om power-ups og samleobjekter. Vis den resterende tid for aktive power-ups, antallet af indsamlede samleobjekter og andre relevante detaljer.

Konsistens

Sørg for, at power-ups og samleobjekter stemmer overens med det overordnede tema og mekanikken i dit spil. Konsistens i design og implementering hjælper med at opretholde en sammenhængende spiloplevelse.

Gem og indlæs

Hvis dit spil inkluderer power-ups eller samleobjekter, der fortsætter på tværs af spilsessioner, skal du implementere et gemme- og indlæsningssystem for at fastholde spillerens fremskridt. Dette sikrer en problemfri oplevelse og motiverer spillere til at vende tilbage til spillet.

Ved at følge disse bedste praksisser kan du skabe et poleret og engagerende power-up og samlersystem, der beriger dit Godot-spils gameplay og gør det sjovere for spillerne.

Gør Godot-spil mere engagerende med power-ups og samleobjekter

Tilføjelse af power-ups og samleobjekter til dit Godot-spil kan øge dets engagement og genspilbarhed markant. Power-ups giver spillere spændende og midlertidige fordele.

Ved omhyggeligt at designe og implementere power-ups og samleobjekter kan du skabe en mere fordybende og fornøjelig spiloplevelse for dine spillere. Godots fleksibilitet og enkelthed gør det nemt for spiludviklere at skabe engagerende power-ups og samleobjekter, der forbedrer deres spils mekanik og nydelse.