Aflați cum să controlați fereastra de vizualizare a jocului dvs. cu acțiuni de panoramare, mărire și scalare.
Un sistem de camere bine conceput poate ajuta la cufundarea jucătorilor în lumea jocului și poate oferi un sentiment mai bun al locației. Camera acționează ca ochii jucătorului, permițându-i să navigheze și să interacționeze cu lumea jocului.
Crearea unui sistem de camere în Godot este simplă, dar puternică. Puteți configura cu ușurință camera să urmărească jucătorul în jur, să restricționați mișcările acestuia la zona de joc și chiar să adăugați o mărire dinamică și o scalare în funcție de evenimentele din joc.
Crearea unui joc simplu
Înainte de a începe, trebuie să creați o lume de joc 2D și un personaj în dvs Godot Game Engine pe care camera o poate urmări.
Creați o nouă scenă 2D și adăugați un CharacterBody2D nodul. Acesta va servi drept personajul nostru de jucător. În interiorul CharacterBody2D, adăugați a CollisionShape2D şi setează-i forma la RectangleShape2D pentru a oferi prezența fizică a jucătorului în lume.
Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.
De asemenea, în interiorul CharacterBody2D, adăugați a Sprite2D nod și atribuiți-i imaginea sprite-ului playerului. Creați un nou script atașat la nodul CharacterBody2D și adăugați următorul cod:
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)
Cu acest cod, personajul jucătorului se poate deplasa acum în toate cele patru direcții și se va ciocni cu platformele.
Implementarea unui sistem de cameră de urmărire
Următorul pas este să creați o cameră care urmărește mișcările jucătorului. Adauga o Camera2D nod ca un copil al tau CharacterBody2D nodul. Acest lucru asigură că camera va urmări întotdeauna playerul. Pentru a face mișcarea mai lină, activați proprietatea de netezire a poziției a Camera2D nodul.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Implementarea limitelor și restricțiilor camerei
Adesea este important să restricționați vederea jucătorului la zona de joc. Cu toate acestea, dacă nu gestionați acest lucru corect, camera poate dezvălui zone care sunt în afara domeniului de aplicare al jocului. Acestea pot include spații sau zone incomplete.
Godot oferă o modalitate ușoară de a seta limitele camerei și de a restricționa mișcările acesteia în zona de joc.
În Camera2D proprietățile nodului, există patru variabile: limit_left, limit_top, limit_right, și limit_bottom. Acestea determină limitele camerei. Puteți seta aceste valori în funcție de dimensiunea lumii dvs. de joc.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
A inlocui lățimea_zonei_de_jocului și înălțimea_zonei_de_jocului cu lățimea și înălțimea lumii tale de joc. Acest script restricționează efectiv camera în zona dorită, oferind jucătorului o experiență de joc curată și concentrată.
Manipularea măririi și scalarii camerei
Mărirea și scalarea dinamică pot fi esențiale în crearea unor momente de impact în joc. De exemplu, ați putea dori să măriți personajul jucătorului în timpul unei acțiuni puternice sau să micșorați pentru a dezvălui un inamic mare sau o vedere panoramică a lumii jocului.
Godot facilitează mărirea și scalarea cu ajutorul zoom proprietatea Camera2D nodul. Această proprietate este un Vector2, (1, 1) fiind nivelul implicit de zoom. Valorile mai mari se vor micșora, făcând obiectele vizualizate să pară mai mici, în timp ce valorile mai mici se vor mări, făcând obiectele să pară mai mari.
Pentru a mări, puteți utiliza:
$Camera2D.zoom = Vector2(0.7, 0.7)
Și pentru a reseta zoomul, utilizați:
$Camera2D.zoom = Vector2(1, 1)
Valorile pe care le transmiteți către Vector2() determină nivelul de zoom pe axele X și Y. O valoare de zoom de (0,7, 0,7) înseamnă că camera va mări, în timp ce o valoare de (1,5, 1,5) va micșora camera.
De obicei, ar trebui să păstrați aceeași valoare pentru ambele axe pentru a menține raportul de aspect, dar puteți experimenta cu valori diferite pentru a obține efecte unice.
Inclusiv caracteristici suplimentare
Când creați un sistem de cameră pentru jocul dvs., există numeroase funcții suplimentare pe care le puteți încorpora pentru a îmbunătăți experiența.
Tremurarea camerei
Un efect comun folosit în multe jocuri, în special jocuri platformer, este tremuratul camerei. Acesta este de obicei folosit pentru a transmite impactul sau intensitatea în anumite momente din joc, cum ar fi o explozie sau un atac puternic al unui personaj.
Puteți adăuga cu ușurință această funcție în Godot creând un scutura() funcţie. Puteți specifica durata și intensitatea efectului de agitare în funcție de evenimentul specific din joc.
Sunetele pot spori mult simțul locului și al mișcării într-un joc. Acest lucru poate fi la fel de simplu ca să joci un swoosh efect sonor atunci când camera se mișcă sau se deplasează rapid sau la fel de complexă precum modificarea volumului sau înălțimii sunetelor ambientale sau a melodiilor în funcție de locația camerei sau nivelul de zoom.
De exemplu, este posibil să doriți să reduceți volumul unei melodii pe măsură ce camera micșorează pentru a da o senzație de distanță.
Iluminare dinamica
De asemenea, puteți lega efecte de iluminare dinamice la camera dvs. Pe măsură ce camera dvs. se mișcă în lumea jocului, puteți modifica condițiile de iluminare pentru a reflecta noile medii sau pentru a evidenția anumite zone sau obiecte.
Aceasta ar putea include lucruri precum întunecarea treptată a scenei pe măsură ce camera se adâncește într-o peșteră sau evidențierea unui obiect cheie cu un reflector.
Efecte de tranziție a camerei
Puteți crea diverse efecte de tranziție atunci când comutați între camerele foto. Aceasta ar putea fi o simplă tăiere în care vizualizarea sare instantaneu de la o cameră la alta sau o estompare în care vederea trece treptat de la o cameră la alta.
Puteți utiliza tranziții mai complexe, cum ar fi ștergerea, diapozitivul sau irisul, cu codare și animație suplimentare.
Cele mai bune practici pentru adăugarea unui sistem de cameră
Atunci când adăugați un sistem de cameră la jocul dvs., există câteva bune practici de reținut pentru a asigura cea mai bună experiență de joc posibilă.
Evitați mișcările bruște ale camerei
Schimbările bruște ale perspectivei camerei pot fi dezorientate pentru jucători și pot perturba jocul. Țintește întotdeauna tranzițiile line ale camerei pentru a menține imersiunea.
Limitați tremuratul camerei
În timp ce mișcarea camerei poate adăuga impact anumitor evenimente, prea mult poate face jocul greu de urmărit și incomod de jucat. Utilizați acest efect cu moderație și cu moderație.
Testați diferite niveluri de zoom
Diferite jocuri și diferite situații din cadrul unui joc pot necesita diferite niveluri de zoom. Testați cu atenție pentru a găsi cel mai potrivit nivel de zoom pentru fiecare situație.
Luați în considerare cu atenție limitele camerei
Limitele camerei ar trebui stabilite atent pentru a se potrivi cu designul nivelurilor dvs. Nu doriți ca jucătorul să vadă în afara lumii jocului sau să rateze elemente importante de pe ecran.
Prioritizează experiența jucătorului
Scopul principal al sistemului de camere ar trebui să fie întotdeauna îmbunătățirea experienței jucătorului. Fie că oferă cea mai bună vizualizare a acțiunii, subliniază momentele cheie sau ajută jucătorul să navigheze în mediu, camera ar trebui să contribuie întotdeauna la o experiență de joc mai bună.
Faceți jocurile Godot mai atractive cu sistemul de cameră
Un sistem de cameră bine implementat poate îmbunătăți experiența generală a jocului. Poate sublinia acțiunea, poate ajuta la povestirea și poate oferi o experiență mai captivantă.
Controlând ceea ce vede jucătorul și când îl vede, îi puteți ghida călătoria prin lumea jocului și puteți face jocul mai dinamic și mai captivant.