Pohyb hráča zohráva kľúčovú úlohu pri vytváraní pútavejších hier Godot. Zistite, ako ho implementovať.

Implementácia pohybu hráča je základným aspektom vytvárania pútavých hier v Godot Game Engine. Pohyb hráča umožňuje používateľom ovládať postavy, skúmať herné svety a interagovať s rôznymi prvkami v hernom prostredí.

Nastavenie hry Godot

Ak chcete začať, vytvorte nový 2D projekt v herný engine Godot. Potom postupujte podľa týchto krokov a pridajte pohyb hráča do svojej hry

Vytvorte novú scénu kliknutím pravým tlačidlom myši Systém súborov panel a potom výber Nový priečinok a pomenovať to Scény. Vnútri Scény kliknite pravým tlačidlom myši a vytvorte novú 2D scénu. Uložte ho pod vhodným názvom, napr. Player.tscn.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Pridaj CharacterBody2D uzol na scénu kliknutím na Pridať uzol tlačidlo a výber CharacterBody2D z knižnice uzlov.

S CharacterBody2D vybratý uzol, kliknite na Pridať podradený uzol

instagram viewer
tlačidlo na pridanie a CollisionShape2D. Upravte tvar CollisionShape2D aby zodpovedali rozmerom prehrávača. Pre jednoduchosť môžete použiť obdĺžnikový tvar.

Ďalej pridajte a Sprite2D komponent k CharacterBody2D uzol a vyberte si vhodného sprite pre svoju hráčsku postavu.

Pridanie pohybu hráča pomocou vstupu z klávesnice

Teraz môžete pridať pohyb hráča pomocou vstupu z klávesnice Player.gd skript.

Predĺžte CharacterBody2D uzol, nastavte rýchlosť pohybu a získajte vstup pomocou kláves so šípkami (ui_left, ui_right, ui_up, ui_down). Vypočítajte rýchlosť pohybu na základe smeru vstupu, normalizujte ju a potom posuňte prehrávač pomocou tlačidla move_and_collide funkciu v _fyzikálny_proces metóda.

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)

Pridanie rotácie

Ak chcete, aby bol prehrávač otočený smerom k smeru pohybu, môžete do prehrávača pridať rotáciu. Aktualizujte Player.gd skript takto:

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

Hráč sa bude otáčať v smere pohybu. Rýchlosť otáčania je možné nastaviť pomocou rýchlosť rotácie premenlivý.

Pridanie pohybu hráča pomocou vstupu myši

Teraz môžete implementovať pohyb hráča pomocou vstupu myšou a presunúť hráča do pozície kliknutia myšou alebo prinútiť hráča, aby stál pred ukazovateľom myši:

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)

V tomto kóde sa hráč presunie smerom k pozícii kliknutia myšou vždy, keď sa spustí kliknite spustí sa akcia. Rýchlosť prehrávača je možné ovládať pomocou rýchlosť premenlivý.

Okrem toho môžete tiež implementovať otáčanie pomocou myši takto:

extends CharacterBody2D

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

V tejto verzii bude hráčov sprite priamo smerovať k pozícii ukazovateľa myši.

Vrátane ďalších funkcií

Zatiaľ čo základný pohyb hráča je nevyhnutný pre väčšinu hier, pridanie ďalších funkcií môže posunúť zážitok vášho hráča na ďalšiu úroveň. Tu je niekoľko zaujímavých funkcií, ktoré môžete zvážiť implementáciu do svojej hry na zlepšenie pohybu hráčov:

Skákanie

Implementácia mechaniky skokov umožňuje hráčom prechádzať prekážkami, dostať sa na vyššie platformy a pridať ďalšiu vrstvu interaktivity do herného sveta. Môžete ovládať výšku skoku a pridať animácie, aby bol vizuálne príťažlivý.

Dash alebo Sprint

Schopnosť pomlčky umožňuje hráčovi rýchly pohyb na krátku dávku, čo môže byť užitočné pri vyhýbaní sa nepriateľom alebo pri prechode náročnými oblasťami. Táto funkcia pridáva do hry dynamický prvok a zlepšuje pocit ovládania hráča.

Posuvné a lezecké steny

Zavádzanie mechanizmov posúvania a šplhania po stene umožňuje hráčom interakciu s vertikálnymi povrchmi. Hráči sa môžu skĺznuť po stenách, skákať po stenách alebo dokonca zdolať určité prekážky. Táto funkcia je obzvlášť populárna v platformových hrách.

Mechanika plošiny

Pre plošinovky, môžete začleniť gravitáciu, zrýchlenie a spomalenie, aby ste vytvorili plynulý a realistický pohyb. Jemné doladenie týchto mechanizmov môže spôsobiť, že hra bude vyzerať lepšie a zábavnejšie.

Pamätajte, že kľúč k úspešnej implementácii ďalších funkcií spočíva v ich vyvážení a bezproblémovej integrácii do hry. Každá funkcia by mala dopĺňať základnú mechaniku pohybu hráča a prispievať k celkovému zážitku z hry.

Osvedčené postupy na pridávanie pohybu hráča

Pokiaľ ide o implementáciu pohybu hráčov vo vašej hre Godot, postupujte podľa týchto osvedčených postupov nielenže spraví váš kód čistejším a efektívnejším, ale prispeje aj k lepšiemu prehrávaču skúsenosti:

Samostatné obavy

Usporiadajte si logiku pohybu hráča do samostatných funkcií alebo skriptov. Napríklad vytvorte skript na spracovanie vstupov hráča, ďalší na pohyb postavy a možno ešte jeden na spracovanie animácií.

Oddelenie problémov robí váš kód modulárnejším a ľahším na údržbu, ako aj podporuje lepšiu spoluprácu medzi členmi tímu.

Použite Delta Time

Pri výpočte pohybu vždy vynásobte svoje hodnoty delta časom (delta), aby ste zabezpečili plynulý pohyb medzi rôznymi snímkovými frekvenciami. Delta čas predstavuje čas, ktorý uplynul od poslednej snímky, a zabezpečuje, že sa hráč pohybuje konštantnou rýchlosťou bez ohľadu na výkon zariadenia.

Obmedzte rýchlosť pohybu

Nastavte maximálnu rýchlosť pohybu prehrávača, aby ste sa vyhli neúmyselnému pohybu vysokou rýchlosťou. Toto obmedzenie môže byť užitočné pri predchádzaní hráčom v narušení fyziky hry alebo pri problémoch s detekciou kolízií.

Zvážte fyzikálne vrstvy a kolízne masky

Godot vám umožňuje konfigurovať kolízne vrstvy a masky pre rôzne objekty vo vašej hre. Správne nastavenie týchto vrstiev a masiek vám umožňuje kontrolovať, ktoré objekty môžu počas pohybu vzájomne pôsobiť. Môžete napríklad chcieť, aby sa prehrávač zrazil s pevnými predmetmi, ale neprešiel cez nepevné.

Pridajte vizuálnu a zvukovú spätnú väzbu

Implementujte vizuálne efekty a zvukové signály, aby ste hráčom poskytli spätnú väzbu počas pohybu. Napríklad pridanie čiastočiek prachu, keď prehrávač beží alebo keď sa ozve zvuk krokov, môže zlepšiť pocit ponorenia a zapojenia.

Urobte hry Godot pútavejšími vďaka pohybu hráčov

Fluidná a citlivá mechanika pohybu môže výrazne zlepšiť celkový zážitok z hráča. Či už ide o objavovanie rozsiahleho sveta, uhýbanie sa pred nepriateľmi alebo riešenie hádaniek, plynulý pohyb hráča zlepšuje ponorenie do hry a udržiava hráčov v napätí.

Implementáciou pohybu hráča pomocou GDScript a uzla CharacterBody2D môžete vytvárať dynamické a príjemné herné zážitky. Schopnosť voľne sa pohybovať a interagovať s herným svetom posilňuje hráčov a dáva im pocit prepojenia s virtuálnym prostredím.