Spēlētāju kustībai ir izšķiroša nozīme, lai padarītu Godot spēles saistošākas. Uzziniet, kā to īstenot.

Spēlētāju kustības ieviešana ir būtisks aspekts, veidojot aizraujošas spēles Godot Game Engine. Spēlētāja kustība ļauj lietotājiem kontrolēt varoņus, izpētīt spēļu pasaules un mijiedarboties ar dažādiem spēles vides elementiem.

Godota spēles iestatīšana

Lai sāktu, izveidojiet jaunu 2D projektu Godot spēļu dzinējs. Pēc tam veiciet šīs darbības, lai savai spēlei pievienotu spēlētāja kustību

Izveidojiet jaunu ainu, ar peles labo pogu noklikšķinot uz Failu sistēma panelis, pēc tam atlasot Jauna mape un nosaucot to Ainas. Iekšpusē Ainas mapē, ar peles labo pogu noklikšķiniet un izveidojiet jaunu 2D ainu. Saglabājiet to ar piemērotu nosaukumu, piemēram, Player.tscn.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Pievienojiet a CharacterBody2D mezglu uz skatuves, noklikšķinot uz Pievienot mezglu pogu un atlasot CharacterBody2D no mezglu bibliotēkas.

instagram viewer

Ar CharacterBody2D atlasīto mezglu, noklikšķiniet uz Pievienojiet bērnu mezglu pogu, lai pievienotu a CollisionShape2D. Pielāgojiet formu CollisionShape2D lai atbilstu spēlētāja izmēriem. Vienkāršības labad varat izmantot taisnstūra formu.

Tālāk pievienojiet a Sprite2D sastāvdaļa uz CharacterBody2D mezglu un izvēlieties savam spēlētāja tēlam atbilstošu spraitu.

Spēlētāja kustības pievienošana, izmantojot tastatūras ievadi

Tagad varat pievienot spēlētāja kustību, izmantojot tastatūras ievadi Player.gd skripts.

Pagariniet CharacterBody2D mezglu, iestatiet kustības ātrumu un iegūstiet ievadi no bulttaustiņiem (ui_left, ui_right, ui_up, ui_down). Aprēķiniet kustības ātrumu, pamatojoties uz ievades virzienu, normalizējiet to un pēc tam pārvietojiet atskaņotāju, izmantojot pārvietot_un_sadurties funkcija _fizikas_process metodi.

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO
if Input.is_action_pressed("ui_left"):
input_dir.x -= 1
if Input.is_action_pressed("ui_right"):
input_dir.x += 1
if Input.is_action_pressed("ui_up"):
input_dir.y -= 1
if Input.is_action_pressed("ui_down"):
input_dir.y += 1

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

Rotācijas pievienošana

Lai atskaņotājs būtu vērsts pret kustības virzienu, atskaņotājam varat pievienot rotāciju. Atjauniniet Player.gd skripts šādi:

extends CharacterBody2D

@export var speed = 400
@export var rotation_speed = 1.5

var rotation_direction = 0

func get_input():
rotation_direction = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity = transform.x * (Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down")) * speed

func _physics_process(delta):
get_input()
rotation += rotation_direction * rotation_speed * delta
move_and_slide()

Spēlētājs griezīsies kustības virzienā. Rotācijas ātrumu var regulēt, izmantojot rotācijas_ātrums mainīgs.

Spēlētāja kustības pievienošana, izmantojot peles ievadi

Tagad varat īstenot spēlētāja kustību, izmantojot peles ievadi, lai pārvietotu atskaņotāju uz peles klikšķa pozīciju vai liktu spēlētājam vērst peles rādītāju:

extends CharacterBody2D

@export var speed = 300

func _physics_process(delta):
if Input.is_action_just_pressed("click"):
var target_position = get_global_mouse_position()
var direction = (target_position - global_position).normalized()
velocity = direction * speed * delta
move_and_collide(velocity)

Šajā kodā spēlētājs virzīsies uz peles klikšķa pozīciju ikreiz, kad klikšķis darbība tiek aktivizēta. Spēlētāja ātrumu var kontrolēt, izmantojot ātrumu mainīgs.

Turklāt jūs varat arī ieviest peles rotāciju, kā norādīts tālāk.

extends CharacterBody2D

func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction

Šajā versijā spēlētāja spraite būs tieši vērsta pret peles rādītāja pozīciju.

Ieskaitot papildu funkcijas

Lai gan spēlētāja pamata kustība ir būtiska lielākajai daļai spēļu, papildu funkciju pievienošana var paaugstināt spēlētāja pieredzi nākamajā līmenī. Šeit ir dažas aizraujošas funkcijas, kuras varat apsvērt ieviest savā spēlē, lai uzlabotu spēlētāju kustību.

Lēkšana

Lēciena mehānikas ieviešana ļauj spēlētājiem pārvietoties pa šķēršļiem, sasniegt augstākas platformas un pievienot spēļu pasaulei papildu interaktivitātes slāni. Varat kontrolēt lēciena augstumu un pievienot animācijas, lai padarītu to vizuāli pievilcīgu.

Dash vai Sprint

Dash spēja ļauj spēlētājam ātri pārvietoties uz īsu sēriju, kas var būt noderīga, lai izvairītos no ienaidniekiem vai šķērsotu sarežģītus apgabalus. Šī funkcija piešķir spēlei dinamisku elementu un uzlabo spēlētāja kontroles sajūtu.

Sienas bīdīšana un kāpšana

Sienas slīdēšanas un kāpšanas mehānikas ieviešana ļauj spēlētājiem mijiedarboties ar vertikālām virsmām. Spēlētāji var slīdēt lejup pa sienām, veikt lēcienus no sienas vai pat pārvarēt noteiktus šķēršļus. Šī funkcija ir īpaši populāra platformera spēlēs.

Platformera mehānika

Platformas spēlēm, varat iekļaut gravitāciju, paātrinājumu un palēninājumu, lai radītu vienmērīgu un reālistisku kustību pieredzi. Šīs mehānikas precizēšana var padarīt spēli noslīpētāku un patīkamāku.

Atcerieties, ka papildu funkciju veiksmīgas ieviešanas atslēga ir to līdzsvarošana un nemanāma integrēšana spēlē. Katrai funkcijai ir jāpapildina galvenā spēlētāja kustības mehānika un jāveicina kopējā spēles pieredze.

Spēlētāja kustību pievienošanas paraugprakse

Kad runa ir par spēlētāju kustības ieviešanu savā Godot spēlē, ievērojiet šo paraugpraksi padarīs jūsu kodu ne tikai tīrāku un efektīvāku, bet arī veicinās labāku atskaņotāju pieredze:

Atsevišķas bažas

Sakārtojiet atskaņotāja kustības loģiku atsevišķās funkcijās vai skriptos. Piemēram, izveidojiet skriptu atskaņotāja ievades apstrādei, otru rakstzīmju kustībai un, iespējams, vēl vienu animāciju apstrādei.

Problēmu nošķiršana padara jūsu kodu modulārāku un vieglāk uzturējamu, kā arī veicina labāku sadarbību starp komandas locekļiem.

Izmantojiet Delta laiku

Aprēķinot kustību, vienmēr reiziniet savas vērtības ar delta laiku (delta), lai nodrošinātu vienmērīgu kustību dažādos kadru ātrumos. Delta laiks norāda laiku, kas pagājis kopš pēdējā kadra, un nodrošina, ka atskaņotājs pārvietojas nemainīgā ātrumā neatkarīgi no ierīces veiktspējas.

Ierobežojiet kustības ātrumu

Iestatiet atskaņotāja maksimālos kustības ātrumus, lai izvairītos no nejaušas liela ātruma kustības. Šis ierobežojums var būt noderīgs, lai neļautu spēlētājiem pārkāpt spēles fiziku vai saskarties ar sadursmes noteikšanas problēmām.

Apsveriet fizikas slāņus un sadursmes maskas

Godot ļauj konfigurēt sadursmes slāņus un maskas dažādiem spēles objektiem. Pareizi iestatot šos slāņus un maskas, varat kontrolēt, kuri objekti kustības laikā var mijiedarboties viens ar otru. Piemēram, jūs varat vēlēties, lai atskaņotājs saduras ar cietiem objektiem, bet neiziet cauri tiem, kas nav cieti.

Pievienojiet vizuālās un audio atsauksmes

Ieviesiet vizuālos efektus un skaņas signālus, lai sniegtu spēlētājiem atgriezenisko saiti kustības laikā. Piemēram, putekļu daļiņu pievienošana atskaņotājam skrienot vai soļu skaņai var uzlabot iegremdēšanas un iesaistīšanās sajūtu.

Padarot Godot spēles saistošākas ar spēlētāju kustībām

Šķidra un atsaucīga kustību mehānika var ievērojami uzlabot kopējo spēlētāja pieredzi. Neatkarīgi no tā, vai tā ir plašās pasaules izpēte, izvairīšanās no ienaidniekiem vai mīklu risināšana, vienmērīga spēlētāja kustība uzlabo iedziļināšanos un notur spēlētājus.

Ieviešot spēlētāju kustību, izmantojot GDScript un CharacterBody2D mezglu, varat izveidot dinamisku un patīkamu spēles pieredzi. Spēja brīvi pārvietoties un mijiedarboties ar spēļu pasauli dod spēlētājiem spēku un liek viņiem justies saistītiem ar virtuālo vidi.