Hold styr på din spillers præstationer og beløn dem for bestemte milepæle med et simpelt scoringssystem.
I ethvert spil er implementering af et scoringssystem ikke kun et tilfælde af at holde styr på point. Scoring er en grundlæggende funktion, der tilføjer dybde, udfordring og en følelse af præstation.
Uanset om du laver et afslappet mobilspil eller et intenst actionfyldt eventyr, kan et veldesignet scoringssystem være drivkraften bag spillerens motivation og engagement.
Opsætning af Godot-spillet
Inden du dykker ned i scoringssystemet, skal du oprette et grundlæggende 2D-spil Godot spilmotoren. Skab en spillerkarakter, der kan bevæge sig rundt på skærmen. Tilføj også nogle bevægende fjender, som spilleren kan undgå.
Først skal du oprette en ny scene og tilføje en CharacterBody2D node som spillerens hovedlegeme. Inde i CharacterBody2D node, tilføj en CollisionShape2D med en rektangulær form, der repræsenterer spillerens hitbox. Tilføj desuden en Sprite2D node for at vise spillerens sprite.
Koden brugt i denne artikel er tilgængelig i denne GitHub-depot og er gratis for dig at bruge under MIT-licensen.
Skriv nu GDScript-koden for spillerens bevægelse:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Denne kode udvider CharacterBody2D node og giver spilleren mulighed for at bevæge sig i fire retninger ved hjælp af piletasterne.
Tilføj derefter nogle bevægende fjender. For nemheds skyld, brug simple Sprite2D noder, der bevæger sig vandret hen over skærmen:
extends StaticBody2D
var speed = 100
func _physics_process(delta):
position.x -= speed * delta
if position.x < -100:
position.x = 800
Denne kode skaber en simpel fjende, der bevæger sig fra højre mod venstre. Nulstil dens position, når den går væk fra skærmen for at skabe en illusion af en kontinuerlig strøm af fjender.
Opsæt et scoresystem
Nu hvor du har en grundlæggende spilopsætning, skal du tilføje scoringssystemet. Opret en global variabel for at holde styr på spillerens score. Du kan placere dette script på en separat node eller selve spillerkarakteren:
extends CharacterBody2D
var score = 0
func _ready():
score = 0
Scorevariablen vil fungere som et centralt lager for spillerens score gennem hele spillet. Efterhånden som spilleren udfører handlinger, der tjener point, skal du øge denne scorevariabel tilsvarende. Denne implementering gør det nemt at vise scoren på skærmen, opdatere den under gameplay og gemme den til tracking med høj score.
Med scoresystemet sat op, kan du gå videre til at vise scoren på skærmen, spore spillerens højeste score og tilføje forskellige funktioner for at gøre scoringssystemet mere engagerende.
Vis scoren
For at vise partituret på skærmen skal du oprette en etiketnode og opdatere det med det aktuelle partitur i hver frame. Tilføj en i scenen Etiket node og giv den et navn. Tilføj derefter følgende kode for at opdatere etiketten med partituret:
extends CharacterBody2D
var score = 0
var score_labelfunc _ready():
score_label = get_parent().get_node("Label")
score = 0func _physics_process(delta):
var velocity = Vector2()
// Player movement code...
# Update score and display
score_label.text = "Score: " + str(score)
Denne kode henter Etiket node og opdaterer sin tekst med den aktuelle score.
Inklusiv flere funktioner
For at gøre dit scoringssystem endnu mere engagerende, overveje at implementere nogle eller alle disse funktioner i dine platformspil.
Power-ups og bonusser
Opret forskellige power-ups eller samleobjekter, som spillerne kan samle under spillet. Disse power-ups kan give midlertidige boosts, ekstra point eller specielle evner, hvilket forbedrer den samlede oplevelse.
For eksempel kan en dobbeltscore-power-up fordoble de optjente point i en begrænset periode, eller en Shield-power-up kan gøre spilleren uovervindelig i en kort periode.
Combo system
Implementer et kombinationssystem, der belønner spillere med ekstra score for på hinanden følgende handlinger, såsom at besejre fjender hurtigt efter hinanden. Jo længere kombinationskæden er, jo højere scoremultiplikator.
Dette system tilskynder spillere til at bevare deres momentum og dygtigt nedkæmpe fjender for at maksimere deres score.
Tidsbonus
Tilføj en tidsbaseret bonus, der belønner spillere for at fuldføre niveauer eller mål inden for en vis tidsgrænse. Jo hurtigere de er færdige, jo flere bonuspoint modtager de. Denne funktion opmuntrer spillere til at spille effektivt og tilføjer et element af presserende karakter til gameplayet.
Niveaumål
Design niveauer med specifikke scoremål eller mål, som spillerne kan nå. For eksempel kan du sætte et mål for, at spillere skal nå en bestemt scoretærskel eller samle et bestemt antal genstande for at gå videre til næste niveau. At opfylde disse mål giver en følelse af realisering og progression.
Fjendens adfærd og score
Varier fjendens adfærd og tildel forskellige pointværdier til dem baseret på sværhedsgrad. Mere udfordrende fjender kan belønne højere score, når de bliver besejret, mens lettere giver færre point. Denne tilgang tilføjer dybde til gameplayet og får hvert fjendemøde til at føles særskilt.
Bedste praksis for scoringssystem
Der er bedste praksis til at forbedre dit scoringssystems effektivitet og skabe en fordybende spiloplevelse. Nogle af dem er:
Balance og retfærdighed
Sørg for, at scoringssystemet er velafbalanceret og retfærdigt for alle spillere. Undgå at give for mange point for nemme opgaver eller gøre scoringen for udfordrende for afslappede spillere. Et afbalanceret scoringssystem vil motivere spillere til at fortsætte med at spille og stræbe efter bedre resultater.
Klar feedback
Giv klar og øjeblikkelig feedback på scoringsbegivenheder. Brug visuel og lydsignaler i dit spil at informere spillere, når de optjener point, opnår en høj score eller udløser en kombination. Positiv forstærkning gennem feedback forbedrer spilleroplevelsen og holder dem engagerede.
Sværhedsgrad
Overvej at implementere dynamisk scoring baseret på spillerens færdighedsniveau eller spillets sværhedsgrader. Skalering af scoringssystemet giver spillere på alle niveauer mulighed for at nyde spillet, uanset om de er begyndere eller erfarne spillere.
Genspilbarhed
Design scoringssystemet for at fremme genspilbarhed. Tilbyd flere veje eller valgfrie mål, som spillere kan forfølge for at øge deres score. Denne tilgang giver spillerne en grund til at vende tilbage og udforske forskellige strategier.
Høj score synlighed
Vis den høje score fremtrædende på hovedmenuen eller grænsefladen i spillet. At se en høj score motiverer spillere til at sigte efter topplaceringen og skaber sund konkurrence blandt spillerne.
Gør Godot-spil mere engagerende med et scoresystem
Tilføjelse af et scoringssystem til dit Godot-spil er en effektiv måde at gøre det mere engagerende og sjovt for spillerne. Det giver en klar følelse af progression, tilskynder til genspilbarhed og fremmer sund konkurrence blandt spillere.
Ved at kombinere scoringssystemet med forskellige andre funktioner og bedste praksis kan du oprette en dynamisk og givende gameplayoplevelse, der holder spillere hooked og spændte på at opnå højere scoringer.