Siit saate teada, kuidas juhtida oma mängu vaateporti panoraamimise, suumimise ja skaleerimisega.
Hästi läbimõeldud kaamerasüsteem võib aidata mängijatel mängumaailma sukelduda ja anda parema asukohataju. Kaamera toimib mängija silmadena, võimaldades neil mängumaailmas navigeerida ja sellega suhelda.
Kaamerasüsteemi loomine Godot's on lihtne, kuid võimas. Saate hõlpsasti seadistada kaamera nii, et see jälgiks mängijat, piiraks selle liikumist mängualaga ja lisage isegi dünaamiline suumimine ja skaleerimine vastavalt mängu sündmustele.
Lihtsa mängu loomine
Enne alustamist peate looma 2D-mängumaailma ja oma tegelase Godoti mängumootor mida kaamera saab jälgida.
Looge uus 2D-stseen ja lisage a CharacterBody2D sõlm. See on meie mängijategelane. Lisage CharacterBody2D sisse a Kokkupõrkekuju2D ja seadke selle kuju Ristkülikukuju2D et tagada mängija füüsiline kohalolek maailmas.
Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.
Samuti lisage CharacterBody2D sisse a
Sprite2D sõlme ja määrake sellele oma mängija sprite pilt. Looge CharacterBody2D sõlmega lisatud uus skript ja lisage järgmine kood: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)
Selle koodi abil saab mängija tegelane nüüd liikuda kõigis neljas suunas ja põrkab platvormidega kokku.
Jälgimiskaamera süsteemi rakendamine
Järgmine samm on luua kaamera, mis jälgib mängija liikumist. Lisa Kaamera2D sõlm kui teie laps CharacterBody2D sõlm. See tagab, et kaamera järgib alati mängijat. Liikumise sujuvamaks muutmiseks lubage positsiooni silumise omadus Kaamera2D sõlm.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Kaamera piiride ja piirangute rakendamine
Sageli on oluline piirata mängija vaadet mängualale. Kui te aga seda õigesti ei käsitle, võib kaamera paljastada alasid, mis jäävad mängu ulatusest välja. Need võivad hõlmata tühikuid või mittetäielikke alasid.
Godot pakub lihtsat viisi kaamera piirangute seadmiseks ja selle liikumise piiramiseks mängualal.
Aastal Kaamera2D sõlme atribuudid, on neli muutujat: piir_vasak, limit_top, piir_õigus, ja limit_bottom. Need määravad kaamera piirid. Saate määrata need väärtused vastavalt oma mängumaailma suurusele.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Asenda teie_mängu_ala_laius ja teie_mänguala_kõrgus teie mängumaailma laiuse ja kõrgusega. See skript piirab tõhusalt kaamerat soovitud piirkonnas, pakkudes mängijale puhta ja keskendunud mängukogemust.
Kaamera suumimise ja skaleerimise käsitlemine
Dünaamiline suumimine ja skaleerimine võivad mängus mõjuvate hetkede loomisel aidata kaasa. Näiteks võite soovida võimsa toimingu ajal mängija tegelast sisse suumida või välja suumida, et paljastada suur vaenlane või mängumaailma panoraamvaade.
Godot muudab suumimise ja skaleerimise lihtsaks suumi vara Kaamera2D sõlm. See omadus on Vector2, kus (1, 1) on vaikimisi suumitase. Suuremad väärtused suumivad välja, muutes vaadeldavad objektid väiksemaks, samas kui madalamad väärtused suumivad sisse, muutes objektid suuremaks.
Sissesuumimiseks võite kasutada:
$Camera2D.zoom = Vector2(0.7, 0.7)
Ja suumi lähtestamiseks kasutage:
$Camera2D.zoom = Vector2(1, 1)
Funktsioonile Vector2() edastatavad väärtused määravad X- ja Y-telje suumitaseme. Suumi väärtus (0,7, 0,7) tähendab, et kaamera suumib sisse, väärtus (1,5, 1,5) aga vähendab kaamerat.
Tavaliselt peaksite kuvasuhte säilitamiseks hoidma mõlema telje jaoks sama väärtust, kuid ainulaadsete efektide saavutamiseks võite katsetada erinevate väärtustega.
Kaasa arvatud lisafunktsioonid
Mängu jaoks kaamerasüsteemi loomisel saate mängukogemuse täiustamiseks lisada mitmeid lisafunktsioone.
Kaamera värisemine
Levinud efekt, mida kasutatakse paljudes mängudes, eriti platvormi mängud, on kaamera värisemine. Seda kasutatakse tavaliselt löögi või intensiivsuse edastamiseks teatud mänguhetkedel, näiteks plahvatus või tegelase võimas rünnak.
Selle funktsiooni saate Godot's hõlpsasti lisada, luues a raputama() funktsiooni. Saate määrata värinaefekti kestuse ja intensiivsuse vastavalt konkreetsele mängusisesele sündmusele.
Helid võivad mängus oluliselt parandada koha- ja liikumistunnet. See võib olla sama lihtne kui swooshi mängimine heliefekt kui kaamera liigub või panoraamib kiiresti või nii keeruline kui ümbritsevate helide või muusikapalade helitugevuse või kõrguse muutmine kaamera asukoha või suumitaseme alusel.
Näiteks võite soovida vähendada loo helitugevust, kui kaamera suumib välja, et tekitada kaugustunnet.
Dünaamiline valgustus
Samuti saate oma kaameraga siduda dünaamilised valgusefektid. Kui teie kaamera mängumaailmas ringi liigub, saate muuta valgustingimusi, et kajastada uusi keskkondi või esile tõsta konkreetseid piirkondi või objekte.
See võib hõlmata näiteks stseeni järkjärgulist tumedamaks muutmist, kui kaamera koopasse tungib, või võtmeobjekti esiletõstmist prožektoriga.
Kaamera üleminekuefektid
Kaamerate vahel vahetamisel saate luua erinevaid üleminekuefekte. See võib olla lihtne lõige, kus vaade hüppab koheselt ühelt kaameralt teisele, või hääbumine, kus vaade liigub järk-järgult ühelt kaameralt teisele.
Täiendava kodeerimise ja animatsiooniga saate kasutada keerukamaid üleminekuid, nagu pühkimine, libistamine või iiris.
Kaamerasüsteemi lisamise parimad tavad
Kaamerasüsteemi mängule lisamisel tuleb parima võimaliku mängukogemuse tagamiseks silmas pidada mitmeid parimaid tavasid.
Vältige kaamera järske liigutusi
Järsud nihked kaamera vaatenurgas võivad mängijaid segada ja segada mängu. Süvenemise säilitamiseks püüdke alati sujuvaid kaamera üleminekuid.
Kaamera värisemise piiramine
Kuigi kaamera värin võib teatud sündmustele mõju avaldada, võib liiga palju mängu muuta raskesti jälgitavaks ja mängimise ebamugavaks. Kasutage seda efekti säästlikult ja mõõdukalt.
Testige erinevaid suumitasemeid
Erinevad mängud ja erinevad olukorrad mängu sees võivad nõuda erinevaid suumitasemeid. Testige põhjalikult, et leida iga olukorra jaoks sobivaim suumitase.
Kaaluge hoolikalt kaamera piire
Kaamera piirid tuleks läbimõeldult seadistada, et need sobiksid teie tasemete kujundusega. Te ei soovi, et mängija näeks mängumaailmast väljapoole ega jätaks olulisi elemente ekraanist välja.
Eelistage mängijakogemust
Kaamerasüsteemi peamine eesmärk peaks alati olema mängijakogemuse täiustamine. Olgu selleks tegevusest parima ülevaate pakkumine, võtmehetkede rõhutamine või mängija abistamine keskkonnas navigeerimisel, peaks kaamera alati aitama kaasa parema mängukogemuse saavutamisele.
Muudame Godoti mängud kaamerasüsteemiga kaasahaaravamaks
Hästi rakendatud kaamerasüsteem võib üldist mängukogemust täiustada. See võib rõhutada tegevust, aidata jutuvestmisel ja pakkuda kaasahaaravamat kogemust.
Kontrollides, mida mängija näeb ja millal ta seda näeb, saate juhtida tema teekonda läbi mängumaailma ning muuta mängu dünaamilisemaks ja kaasahaaravamaks.