Ismerje meg, hogyan vezérelheti játéka nézetablakát pásztázási, nagyítási és méretezési műveletekkel.
Egy jól megtervezett kamerarendszer segíthet elmeríteni a játékosokat a játék világában, és jobb helyérzéket biztosít. A kamera a játékos szemeként működik, lehetővé téve számukra a navigálást és a játékvilágban való interakciót.
A Godot-ban kamerarendszer létrehozása egyszerű, de hatékony. Könnyedén beállíthatja a kamerát, hogy kövesse a játékost, korlátozza mozgását a játékterületre, és még dinamikus zoomot és méretezést is hozzáadhat a játék eseményei alapján.
Egyszerű játék létrehozása
Mielőtt elkezdené, létre kell hoznia egy 2D-s játékvilágot és egy karaktert Godot játékmotor hogy a kamera követni tudja.
Hozzon létre egy új 2D-s jelenetet, és adjon hozzá a CharacterBody2D csomópont. Ez lesz a játékos karakterünk. A CharacterBody2D belsejében adjon hozzá egy CollisionShape2D és állítsa be az alakját RectangleShape2D hogy biztosítsa a játékos fizikai jelenlétét a világban.
A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.
Ezenkívül a CharacterBody2D-ben adjon hozzá egy Sprite2D csomópontot, és rendelje hozzá a lejátszó sprite képét. Hozzon létre egy új szkriptet a CharacterBody2D csomóponthoz, és adja hozzá a következő kódot:
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)
Ezzel a kóddal a játékos karakter most mind a négy irányba mozoghat, és ütközik a platformokkal.
Követő kamerarendszer megvalósítása
A következő lépés egy olyan kamera létrehozása, amely követi a játékos mozgását. Add hozzá a Camera2D csomópont gyermekeként CharacterBody2D csomópont. Ez biztosítja, hogy a kamera mindig kövesse a lejátszót. A mozgás simábbá tételéhez kapcsolja be a pozíció simító tulajdonságát Camera2D csomópont.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Kamerakorlátok és korlátozások megvalósítása
Gyakran fontos, hogy a játékos kilátását a játékterületre korlátozzuk. Ha azonban ezt nem megfelelően kezeli, a kamera felfedhet olyan területeket, amelyek kívül esnek a játék hatókörén. Ezek lehetnek szóközök vagy hiányos területek.
A Godot egyszerű módot kínál a kamera korlátainak beállítására és mozgásának korlátozására a játék területén.
Ban,-ben Camera2D A csomópont tulajdonságainak négy változója van: limit_left, limit_top, limit_right, és limit_bottom. Ezek határozzák meg a kamera határait. Ezeket az értékeket játékvilágod méretének megfelelően állíthatod be.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Cserélje ki your_game_area_width és a_játék_terület_magassága a játékvilágod szélességével és magasságával. Ez a szkript hatékonyan korlátozza a kamerát a kívánt területen, így tiszta és koncentrált játékélményt biztosít a játékos számára.
Kamera zoomolás és méretezés kezelése
A dinamikus nagyítás és méretezés nagyban hozzájárulhat ahhoz, hogy hatásos pillanatokat hozzon létre a játékban. Például érdemes lehet nagyítani a játékos karakterét egy erőteljes akció során, vagy kicsinyíteni, hogy felfedje a nagy ellenséget vagy panorámaképet a játék világáról.
A Godot megkönnyíti a nagyítást és a méretezést a zoomolás tulajdona a Camera2D csomópont. Ez a tulajdonság egy Vector2, ahol (1, 1) az alapértelmezett nagyítási szint. A magasabb értékek kicsinyítik, így a megtekintett objektumok kisebbnek tűnnek, míg az alacsonyabb értékek nagyítanak, így az objektumok nagyobbnak tűnnek.
A nagyításhoz használhatja:
$Camera2D.zoom = Vector2(0.7, 0.7)
A zoom visszaállításához használja:
$Camera2D.zoom = Vector2(1, 1)
A Vector2()-nek átadott értékek határozzák meg az X és Y tengely nagyítási szintjét. A (0,7, 0,7) zoom érték azt jelenti, hogy a kamera nagyítani fog, míg az (1,5, 1,5) érték kicsinyíti a kamerát.
Általában mindkét tengelyen ugyanazt az értéket kell megtartania a képarány fenntartásához, de kísérletezhet különböző értékekkel, hogy egyedi hatásokat érjen el.
Kiegészítő funkciókkal együtt
Ha kamerarendszert hoz létre a játékhoz, számos további funkciót is beépíthet az élmény fokozása érdekében.
Kamera rázkódása
Gyakori effektus, amelyet sok játékban használnak, különösen platformer játékok, a fényképezőgép rázkódása. Ezt általában a hatás vagy az intenzitás közvetítésére használják a játék bizonyos pillanataiban, például robbanáskor vagy egy karakter erőteljes támadása során.
Könnyedén hozzáadhatja ezt a funkciót a Godot-ban az a ráz() funkció. Megadhatja a shake effektus időtartamát és intenzitását az adott játékon belüli eseménynek megfelelően.
A hangok nagyban javíthatják a hely- és mozgásérzéket a játékban. Ez olyan egyszerű lehet, mint egy swoosh játék hang effektus amikor a kamera gyorsan mozog vagy pásztáz, vagy olyan bonyolult, mint a környezeti hangok vagy zeneszámok hangerejének vagy magasságának módosítása a fényképezőgép helye vagy a zoom szintje alapján.
Például érdemes lehet csökkenteni egy zeneszám hangerejét, miközben a kamera kicsinyít, hogy érzékeltesse a távolságot.
Dinamikus világítás
Dinamikus fényeffektusokat is köthet a fényképezőgépéhez. Ahogy a kamerája a játék világában mozog, módosíthatja a fényviszonyokat, hogy tükrözze az új környezetet, vagy kiemeljen bizonyos területeket vagy tárgyakat.
Ide tartozhat például a jelenet fokozatos elsötétítése, miközben a kamera behatol egy barlangba, vagy egy kulcsfontosságú tárgy kiemelése reflektorfénnyel.
Kamera átmenet effektusok
Különféle átmeneti effektusokat hozhat létre a kamerák közötti váltáskor. Ez lehet egy egyszerű vágás, ahol a nézet azonnal átugrik egyik kameráról a másikra, vagy egy fade, ahol a nézet fokozatosan vált át egyik kameráról a másikra.
Használhat bonyolultabb átmeneteket, például törlést, csúsztatást vagy íriszeket, további kódolással és animációval.
A kamerarendszer hozzáadásának bevált gyakorlatai
Amikor kamerarendszert ad hozzá a játékhoz, számos bevált gyakorlatot kell szem előtt tartania a lehető legjobb játékélmény biztosítása érdekében.
Kerülje a kamera hirtelen mozgását
A kamera perspektívájának hirtelen megváltozása zavaró lehet a játékosok számára, és megzavarhatja a játékot. Mindig törekedjen a zökkenőmentes kameraátmenetekre, hogy fenntartsa az elmerülést.
Korlátozza a kamera rázkódását
Míg a kamera rázkódása hatással lehet bizonyos eseményekre, túl sok a játékot nehezen követhetővé és kényelmetlenné teheti. Használja ezt a hatást takarékosan és mértékkel.
Tesztelje a különböző nagyítási szinteket
A különböző játékok és a játékon belüli helyzetek eltérő nagyítási szintet igényelhetnek. Tesztelje alaposan, hogy megtalálja az egyes helyzetekhez legmegfelelőbb nagyítási szintet.
Gondosan fontolja meg a kamera határait
A kamera határait átgondoltan kell beállítani, hogy illeszkedjenek a szintek kialakításához. Nem akarja, hogy a játékos a játék világán kívülre lásson, és ne hagyja ki a fontos elemeket a képernyőn kívül.
Részesítse előnyben a játékos élményt
A kamerarendszer fő célja mindig a játékos élmény fokozása legyen. Legyen szó a legjobb rálátásról az eseményekről, a kulcsfontosságú pillanatok kiemeléséről vagy a játékosnak a környezetben való eligazodásban való segítéséről, a kamerának mindig hozzá kell járulnia a jobb játékélményhez.
A Godot-játékok vonzóbbá tétele a kamerarendszerrel
Egy jól megvalósított kamerarendszer javíthatja az általános játékélményt. Hangsúlyozhatja a cselekvést, segítheti a történetmesélést, és magával ragadóbb élményt nyújt.
Ha szabályozza, hogy a játékos mit és mikor lát, akkor végigvezetheti utazását a játékvilágon, és dinamikusabbá és vonzóbbá teheti a játékmenetet.