Gibanje igralcev igra ključno vlogo pri tem, da so igre Godot bolj privlačne. Naučite se izvajati.
Implementacija gibanja igralcev je temeljni vidik ustvarjanja privlačnih iger v Godot Game Engine. Gibanje igralca omogoča uporabnikom nadzor nad liki, raziskovanje svetov igre in interakcijo z različnimi elementi v okolju igre.
Nastavitev igre Godot
Za začetek ustvarite nov 2D projekt v Godot Game Engine. Nato sledite tem korakom, da svoji igri dodate gibanje igralca
Ustvarite novo sceno z desnim klikom na Datotečni sistem ploščo in nato izberite Nova mapa in poimenovanje Prizorišča. Znotraj Prizorišča mapo, z desno miškino tipko kliknite in ustvarite novo 2D sceno. Shranite ga s primernim imenom, npr. Player.tscn.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Dodaj a CharacterBody2D vozlišča do scene tako, da kliknete Dodaj vozlišče gumb in izbiro CharacterBody2D iz knjižnice vozlišč.
z CharacterBody2D izbrano vozlišče kliknite
Dodaj podrejeno vozlišče gumb za dodajanje a CollisionShape2D. Prilagodite obliko CollisionShape2D da ustreza dimenzijam igralca. Za enostavnost lahko uporabite obliko pravokotnika.Nato dodajte a Sprite2D komponento za CharacterBody2D vozlišče in izberite ustrezen sprite za svojega lika igralca.
Dodajanje gibanja igralca z vnosom s tipkovnice
Zdaj lahko dodate gibanje igralca z vnosom s tipkovnice Player.gd scenarij.
Podaljšajte CharacterBody2D vozlišče, nastavite hitrost premikanja in pridobite vnos s puščičnimi tipkami (ui_left, ui_right, ui_up, ui_down). Izračunajte hitrost gibanja glede na smer vnosa, jo normalizirajte in nato premaknite igralca z uporabo premikanje_in_trčenje funkcijo v _fizikalni_proces metoda.
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)
Dodajanje rotacije
Če želite, da je igralec obrnjen v smeri gibanja, mu lahko dodate rotacijo. Posodobite Player.gd skript, kot sledi:
extends CharacterBody2D
@export var speed = 400
@export var rotation_speed = 1.5var 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()
Igralec se bo vrtel v smeri gibanja. Hitrost vrtenja lahko nastavite z vrtilna_hitrost spremenljivka.
Dodajanje gibanja igralca z vnosom miške
Zdaj lahko izvajate premikanje igralca z vnosom miške, da premaknete igralca na položaj klika miške ali da se igralec obrne proti kazalcu miške:
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 tej kodi se bo igralec premaknil proti položaju klika miške, kadar koli kliknite dejanje se sproži. Hitrost igralca je mogoče nadzorovati z hitrost spremenljivka.
Poleg tega lahko izvedete tudi rotacijo z miško, kot sledi:
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 tej različici bo igralčev sprite neposredno obrnjen proti položaju kazalca miške.
Vključno z dodatnimi funkcijami
Medtem ko je osnovno gibanje igralca bistvenega pomena za večino iger, lahko dodajanje dodatnih funkcij izkušnjo vašega igralca dvigne na višjo raven. Tukaj je nekaj vznemirljivih funkcij, ki jih lahko razmislite o implementaciji v svojo igro za izboljšanje gibanja igralcev:
Skakanje
Izvajanje mehanike skokov omogoča igralcem, da premagujejo ovire, dosežejo višje platforme in svetu igre dodajo dodatno plast interaktivnosti. Višino skoka lahko nadzorujete in dodate animacije, da bo vizualno privlačen.
Dash ali Sprint
Sposobnost zaleta omogoča igralcu hitro premikanje za kratek izbruh, kar je lahko koristno za izogibanje sovražnikom ali prečkanje zahtevnih območij. Ta funkcija igranju doda dinamičen element in izboljša igralčev občutek nadzora.
Stensko drsenje in plezanje
Uvedba mehanike drsenja po steni in plezanja omogoča igralcem interakcijo z navpičnimi površinami. Igralci lahko drsijo po stenah navzdol, izvajajo stenske skoke ali celo premagajo določene ovire. Ta funkcija je še posebej priljubljena v platformnih igrah.
Mehanika platforme
Za platformne igre, lahko vključite gravitacijo, pospeševanje in zaviranje, da ustvarite gladko in realistično izkušnjo gibanja. Natančna nastavitev teh mehanik lahko naredi igro bolj uglajeno in prijetno.
Ne pozabite, da je ključ do uspešne implementacije dodatnih funkcij ravnovesje in njihova brezhibna integracija v igranje. Vsaka funkcija bi morala dopolnjevati osnovno mehaniko gibanja igralca in prispevati k splošni izkušnji igre.
Najboljše prakse za dodajanje gibanja igralcev
Ko gre za izvajanje gibanja igralcev v vaši igri Godot, upoštevajte te najboljše prakse ne samo, da bo vaša koda čistejša in učinkovitejša, ampak bo tudi prispevala k boljšemu igralcu izkušnje:
Ločene skrbi
Organizirajte svojo logiko gibanja igralca v ločene funkcije ali skripte. Ustvarite na primer skript za obdelavo vnosa igralca, drugega za premikanje likov in po možnosti še enega za upravljanje animacij.
Z ločevanjem skrbi postane vaša koda bolj modularna in enostavnejša za vzdrževanje ter spodbuja boljše sodelovanje med člani ekipe.
Uporabi delta čas
Pri izračunu gibanja vedno pomnožite svoje vrednosti z delta časom (delta), da zagotovite gladko gibanje med različnimi hitrostmi sličic. Delta čas predstavlja čas, ki je pretekel od zadnje sličice, in zagotavlja, da se igralec premika z enakomerno hitrostjo, ne glede na zmogljivost naprave.
Omejitev hitrosti gibanja
Nastavite največje hitrosti gibanja za svojega predvajalnika, da se izognete nenamernemu gibanju pri visoki hitrosti. Ta omejitev je lahko koristna pri preprečevanju igralcev, da bi kršili fiziko igre ali naleteli na težave z zaznavanjem trkov.
Razmislite o slojih fizike in maskah trka
Godot vam omogoča, da konfigurirate trčne sloje in maske za različne predmete v igri. Pravilna nastavitev teh slojev in mask vam omogoča nadzor nad tem, kateri predmeti lahko med premikanjem medsebojno delujejo. Na primer, morda želite, da igralec trči v trdne predmete, vendar ne gre skozi tiste, ki niso trdni.
Dodajte vizualne in zvočne povratne informacije
Uporabite vizualne učinke in zvočne znake, da igralcem zagotovite povratne informacije med gibanjem. Na primer, dodajanje prašnih delcev, ko igralec teče ali sliši korake, lahko poveča občutek potopljenosti in angažiranosti.
Naredite igre Godot bolj privlačne z gibanjem igralcev
Tekoče in odzivne mehanike gibanja lahko znatno izboljšajo celotno izkušnjo igralca. Ne glede na to, ali gre za raziskovanje ogromnega sveta, izogibanje sovražnikom ali reševanje ugank, gladko gibanje igralca poveča poglobljenost in ohranja igralce zasvojene.
Z implementacijo gibanja igralca z GDScript in vozliščem CharacterBody2D lahko ustvarite dinamično in prijetno izkušnjo igranja. Sposobnost prostega gibanja in interakcije s svetom igre daje igralcem moč in daje občutek povezanosti z virtualnim okoljem.