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ó.

instagram viewer

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 += 1

if Input.is_action_pressed('ui_left'):
velocity.x -= 1

if Input.is_action_pressed('ui_down'):
velocity.y += 1

if 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.

Kép forrása: Xbox Game Studios/orithegame.com

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.