Paranna pelikokemustasi Godotissa sisällyttämällä siihen terveys- ja vahinkojärjestelmä.

Terveys- ja vahinkojärjestelmä antaa pelaajille mahdollisuuden tehdä vahinkoja ja menettää terveyspisteitä, kun he kohtaavat esteitä tai vihollisia. Sen avulla he voivat myös palauttaa terveyden useilla eri tavoilla, kuten tehostuksilla tai terveyspakkauksilla.

Godot, suosittu avoimen lähdekoodin pelimoottori, tarjoaa suoraviivaisen ja joustavan lähestymistavan tällaisten järjestelmien toteuttamiseen. Voit helposti luoda 2D-pelin, jossa on pelaajahahmo, vihollinen ja terveyspalkki, joka edustaa visuaalisesti pelaajan terveyttä.

Godot-pelin perustaminen

Määritä ensin projektin perusrakenne Godot-pelimoottori ja luo tarvittavat solmut.

Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.

Luo uusi kohtaus pelaajahahmolle. Lisää KinematicBody2D solmu ja lisää sen sisään a CollisionShape2D suorakaiteen muotoinen edustamaan pelaajan hitboxia. Kiinnitä a Sprite solmu KinematicBody2D näyttääksesi pelaajan hahmon.

# Player.gd
extends KinematicBody2D

const SPEED = 200

var velocity = Vector2.ZERO
var health = 100

func _physics_process(delta):
velocity.x = 0
velocity.y = 0

if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEED

if Input.is_action_pressed("ui_down"):
velocity.y += SPEED
elif Input.is_action_pressed("ui_up"):
velocity.y -= SPEED

move_and_collide(velocity * delta)

Nyt sinulla on peruspelaajahahmo Godot-projektissasi. Voit siirtää soitinta nuolinäppäimillä, mutta terveysjärjestelmää ei ole vielä käytössä.

Terveyspalkin käyttöliittymäelementtien suunnittelu

Nyt voit lisätä käyttöliittymäelementtejä edustamaan visuaalisesti pelaajan terveyttä. Godot tarjoaa sisäänrakennetun ohjauksen nimeltä TextureProgress joka toimii hyvin tähän tarkoitukseen.

Luo uusi solmu HUD: lle (heads-up-näyttö). Lisää CanvasLayer solmu ja lisää sen sisään a TextureProgress solmu. Mukauta ulkoasua TextureProgress node pelisi tyylin ja teeman mukaan.

Voit näyttää kuntopalkin käyttämällä TextureProgress HUD: ssa sinun on määritettävä sille pintakuvio. TextureProgress käyttää kahta pintakuviota: yhtä taustalle ja toista täytetylle osalle (edistyminen).

Etsi Tarkastaja-paneelista Rakenne osio. Alla Rakenne, löydät kiinteistöjä nimeltä Alla ja Yli. Klikkaa Ladata -painiketta jokaiselle ominaisuudelle ja valitse vastaavat kuvat.

Liitä skripti HUD-kohtaukseen päivittääksesi kuntopalkin pelaajan terveydentilan perusteella:

# HUD.gd
extends CanvasLayer

onready var healthBar := $TextureProgress

func _ready():
update_health_bar()

func update_health_bar():
var hb = get_parent().get_node("KinematicBody2D")
healthBar.value = hb.health

Pelaajien terveyden hoitaminen

Jos haluat heikentää pelaajan terveyttä, kun hän ylittää näytön rajan, voit lisätä a ehdollinen tarkistus if-lauseella. Jos pelaaja menee näytön ulkopuolelle, voit heikentää hänen terveyttään. Voit saavuttaa tämän seuraavasti:

# player.gd
extends KinematicBody2D

const SPEED = 200
const DAMAGE_AMOUNT = 0.1

var velocity = Vector2.ZERO
var health = 100

# Screen boundaries
var screen_size
var margin = 20

func _ready():
screen_size = get_viewport_rect().size

func _physics_process(delta):
#... (existing movement code)
move_and_collide(velocity * delta)

var c1 = position.x < -margin
var c2 = position.x > screen_size.x + margin
var c3 = position.y < -margin
var c4 = position.y > screen_size.y + margin

# Check if the player is outside the screen boundaries
if c1 or c2 or c3 or c4:
take_damage_on_screen_exit()

func take_damage_on_screen_exit():
health -= DAMAGE_AMOUNT
if health <= 0:
health = 0
# Game over logic here

update_health_ui()

Lisää update_health_ui() toimintoa player.gd skripti kutsuaksesi HUD-skriptin ja päivittääksesi kuntopalkin.

# Player.gd
extends KinematicBody2D

#... (other code)

func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()

Näillä muutoksilla soitin vaurioituu nyt, kun se ylittää näytön rajan, ja kuntopalkin käyttöliittymä päivittyy vastaavasti.

Sisältää lisäominaisuuksia

Terveys- ja vahinkojärjestelmää voidaan laajentaa erilaisilla lisäominaisuuksilla pelikokemuksen parantamiseksi. Jotkut ideat sisältävät:

Terveysmikit

Ota käyttöön terveyshaittoja, joiden avulla pelaaja voi palauttaa terveytensä kerättyään. Terveysmikrot voivat olla keräilyesineitä, joita on hajallaan pelimaailmassa, tai palkintoja vihollisten voittamisesta.

Kun pelaaja on vuorovaikutuksessa terveyden poiminnan kanssa, hänen terveydentilansa pitäisi nousta tietyllä määrällä maksimiarvoon asti. Voit käyttää uutta skriptiä kunnon poiminnalle ja käsitellä törmäys- ja kunnon palautuslogiikkaa.

Voittamattomuuden lisävoimia

Luo lisävoimia, jotka antavat pelaajalle väliaikaisen voittamattomuuden rajoitetun ajan. Kun pelaaja kerää voittamattomuuden lisäyksen, hänestä tulee immuuni vihollisten tai muiden vaarojen aiheuttamille vaurioille.

Ota ajastin käyttöön voittamattomuuden tilan jäljellä olevan keston seuraamiseksi, ja kun ajastin loppuu, pelaaja palaa haavoittuvaiseen tilaan.

Erilaiset viholliset

Suunnittele erilaisia ​​vihollisia, joilla on erilaisia ​​hyökkäysmalleja, vahinkoarvoja ja käyttäytymistä. Jokainen vihollinen voi asettaa pelaajalle ainutlaatuisia haasteita ja vaatia erilaisia ​​strategioita voittaakseen.

Jotkut viholliset voivat esimerkiksi liikkua nopeammin, tehdä enemmän vahinkoa tai niillä voi olla tiettyjä heikkouksia, joita pelaaja voi hyödyntää. Monimuotoisuuden lisääminen vihollisen kohtaamisiin pitää pelin kiinnostavana ja estää sitä muuttumasta yksitoikkoiseksi.

Terveyden palautuminen

Toteuta terveyden elvyttämistä ajan mittaan palkitaksesi pelaajia vahinkojen välttämisestä. Kun pelaaja ei tee vahinkoa tietyn ajan, hänen terveytensä palautuu vähitellen tiettyyn kynnykseen.

Varmista kuitenkin, että regeneraationopeus on tasapainossa, jotta vältytään tilanteilta, joissa pelaaja voi vain odottaa terveytensä toipumista täysin ilman haasteita.

Ääni- ja visuaalinen palaute

Anna vakuuttavaa ääni- ja visuaalista palautetta, kun pelaaja vahingoittaa, palauttaa terveyden tai kukistaa viholliset.

Vaikuttava tekijänoikeusvapaat äänitehosteet, näytön tärinä, hiukkastehosteet ja visuaaliset vihjeet voivat parantaa soittimen uppoamista ja saada terveys- ja vahinkojärjestelmän tuntumaan dynaamisemmalta ja kiinnostavammalta.

Muista ottaa huomioon lisäämiesi lisäominaisuuksien yleinen tasapaino. Jatka pelitestausta ja palautteen keräämistä varmistaaksesi, että peli pysyy haastavana, nautinnollisena ja hyvässä tahdissa koko pelin ajan.

Tee Godot-peleistä houkuttelevampia terveys- ja vahinkojärjestelmän kanssa

Terveys- ja vahinkojärjestelmän integroiminen Godot-peliisi lisää syvyyttä ja haastetta, mikä tekee pelaamisesta kiinnostavampaa. Se esittelee riski-palkkio-elementin, koska pelaajien on strategioita ja hallittava terveyttään tehokkaasti edistyäkseen pelissä.

Lisäksi terveyspalkin visuaalinen esitys antaa pelaajille tärkeää palautetta heidän nykyisestä tilastaan, mikä parantaa heidän uppoutuneisuuttaan.