Pelajari cara mengontrol area pandang game Anda dengan tindakan panning, zooming, dan scaling.
Sistem kamera yang dirancang dengan baik dapat membantu membenamkan pemain di dunia game dan memberikan pemahaman lokasi yang lebih baik. Kamera bertindak sebagai mata pemain, memungkinkan mereka untuk bernavigasi dan berinteraksi dengan dunia game.
Membuat sistem kamera di Godot sederhana namun kuat. Anda dapat dengan mudah mengatur kamera untuk mengikuti pemain, membatasi gerakannya ke area permainan, dan bahkan menambahkan pembesaran dan penskalaan dinamis berdasarkan peristiwa dalam permainan.
Membuat Game Sederhana
Sebelum memulai, Anda perlu membuat dunia game 2D dan karakter di dalamnya Mesin Permainan Godot yang dapat diikuti oleh kamera.
Buat adegan 2D baru dan tambahkan a KarakterBody2D simpul. Ini akan menjadi karakter pemain kita. Di dalam CharacterBody2D, tambahkan a TabrakanBentuk2D dan atur bentuknya menjadi Persegi PanjangBentuk2D untuk memberikan kehadiran fisik pemain di dunia.
Kode yang digunakan dalam artikel ini tersedia di sini
repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.Juga, di dalam CharacterBody2D, tambahkan a Sprite2D simpul dan tetapkan gambar sprite pemain Anda ke sana. Buat skrip baru yang dilampirkan ke node CharacterBody2D dan tambahkan kode berikut:
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)
Dengan kode ini, karakter pemain kini dapat bergerak ke empat arah dan akan bertabrakan dengan platform.
Menerapkan Sistem Ikuti Kamera
Langkah selanjutnya adalah membuat kamera yang mengikuti gerakan pemain. Tambah sebuah Kamera2D simpul sebagai anak Anda KarakterBody2D simpul. Ini memastikan bahwa kamera akan selalu mengikuti pemain. Untuk membuat gerakan lebih mulus, aktifkan properti pemulusan posisi dari Kamera2D simpul.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Menerapkan Batasan dan Pembatasan Kamera
Seringkali penting untuk membatasi pandangan pemain ke area permainan. Namun, jika Anda tidak menangani ini dengan benar, kamera dapat menampilkan area yang berada di luar cakupan game. Ini mungkin termasuk spasi atau area yang tidak lengkap.
Godot menyediakan cara mudah untuk mengatur batas kamera dan membatasi pergerakannya di dalam area permainan.
Dalam Kamera2D properti simpul, ada empat variabel: batas_kiri, limit_top, limit_right, Dan batas_bawah. Ini menentukan batas-batas kamera. Anda dapat mengatur nilai-nilai ini sesuai dengan ukuran dunia game Anda.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Mengganti your_game_area_width Dan your_game_area_height dengan lebar dan tinggi dunia game Anda. Skrip ini secara efektif membatasi kamera dalam area yang diinginkan, memberikan pengalaman bermain game yang bersih dan fokus bagi pemain.
Menangani Pembesaran dan Penskalaan Kamera
Pembesaran dan penskalaan dinamis dapat berperan penting dalam menciptakan momen yang berdampak dalam game. Misalnya, Anda mungkin ingin memperbesar karakter pemain selama aksi yang kuat atau memperkecil untuk menampilkan musuh besar atau pemandangan panorama dunia game.
Godot memudahkan pembesaran dan penskalaan dengan Perbesar properti dari Kamera2D simpul. Properti ini adalah Vector2, dengan (1, 1) sebagai tingkat zoom default. Nilai yang lebih tinggi akan memperkecil, membuat objek yang dilihat tampak lebih kecil, sedangkan nilai yang lebih rendah akan memperbesar, membuat objek tampak lebih besar.
Untuk memperbesar, Anda dapat menggunakan:
$Camera2D.zoom = Vector2(0.7, 0.7)
Dan untuk mengatur ulang zoom, gunakan:
$Camera2D.zoom = Vector2(1, 1)
Nilai yang Anda teruskan ke Vector2() menentukan tingkat zoom pada sumbu X dan Y. Nilai zoom (0,7, 0,7) berarti kamera akan memperbesar, sedangkan nilai (1,5, 1,5) akan memperkecil kamera.
Anda biasanya harus mempertahankan nilai yang sama untuk kedua sumbu untuk mempertahankan rasio aspek, tetapi Anda dapat bereksperimen dengan nilai yang berbeda untuk mendapatkan efek yang unik.
Termasuk Fitur Tambahan
Saat membuat sistem kamera untuk game Anda, ada banyak fitur tambahan yang dapat Anda gabungkan untuk menyempurnakan pengalaman.
Kamera Bergetar
Efek umum yang digunakan di banyak game, khususnya game platformer, adalah goyangan kamera. Ini biasanya digunakan untuk menyampaikan dampak atau intensitas selama momen tertentu dalam game, seperti ledakan atau serangan kuat karakter.
Anda dapat dengan mudah menambahkan fungsi ini di Godot dengan membuat a menggoyang() fungsi. Anda dapat menentukan durasi dan intensitas efek goncangan sesuai dengan event dalam game tertentu.
Suara dapat sangat meningkatkan rasa tempat dan gerakan dalam game. Ini bisa sesederhana memainkan swoosh efek suara saat kamera bergerak atau menggeser dengan cepat, atau serumit memodifikasi volume atau nada suara sekitar atau trek musik berdasarkan lokasi kamera atau tingkat zoom.
Misalnya, Anda mungkin ingin menurunkan volume lagu saat kamera memperkecil untuk memberikan kesan jarak.
Pencahayaan dinamis
Anda juga dapat mengikat efek pencahayaan dinamis ke kamera Anda. Saat kamera Anda bergerak di sekitar dunia game, Anda dapat mengubah kondisi pencahayaan untuk mencerminkan lingkungan baru atau menyorot area atau objek tertentu.
Ini dapat mencakup hal-hal seperti menggelapkan pemandangan secara bertahap saat kamera menggali ke dalam gua, atau menyorot objek utama dengan lampu sorot.
Efek Transisi Kamera
Anda dapat membuat berbagai efek transisi saat beralih antar kamera. Ini bisa berupa potongan sederhana di mana tampilan langsung melompat dari satu kamera ke kamera lain atau fade di mana tampilan secara bertahap beralih dari satu kamera ke kamera lainnya.
Anda dapat menggunakan transisi yang lebih kompleks, seperti wipe, slide, atau iris, dengan kode dan animasi tambahan.
Praktik Terbaik untuk Menambahkan Sistem Kamera
Saat menambahkan sistem kamera ke game Anda, ada beberapa praktik terbaik yang perlu diperhatikan untuk memastikan pengalaman bermain game yang sebaik mungkin.
Hindari Gerakan Kamera Mendadak
Pergeseran tiba-tiba dalam perspektif kamera dapat membingungkan pemain dan dapat mengganggu gameplay. Selalu bidik transisi kamera yang mulus untuk mempertahankan perendaman.
Batasi Goyangan Kamera
Meskipun goyangan kamera dapat menambah dampak pada peristiwa tertentu, terlalu banyak goyangan dapat membuat game sulit untuk diikuti dan tidak nyaman untuk dimainkan. Gunakan efek ini dengan hemat dan tidak berlebihan.
Uji Berbagai Tingkat Zoom
Gim yang berbeda dan situasi yang berbeda dalam gim mungkin memerlukan tingkat zoom yang berbeda. Uji secara menyeluruh untuk menemukan tingkat zoom yang paling sesuai untuk setiap situasi.
Hati-hati Pertimbangkan Batasan Kamera
Batas kamera harus diatur dengan cermat agar sesuai dengan desain level Anda. Anda tidak ingin pemain melihat di luar dunia game atau melewatkan elemen penting di luar layar.
Prioritaskan Pengalaman Pemain
Tujuan utama dari sistem kamera harus selalu untuk meningkatkan pengalaman pemain. Baik itu memberikan tampilan aksi yang terbaik, menekankan momen-momen penting, atau membantu pemain menjelajahi lingkungan, kamera harus selalu berkontribusi pada pengalaman gameplay yang lebih baik.
Membuat Game Godot Lebih Menarik Dengan Sistem Kamera
Sistem kamera yang diimplementasikan dengan baik dapat meningkatkan pengalaman game secara keseluruhan. Itu dapat menekankan aksi, membantu dalam mendongeng, dan memberikan pengalaman yang lebih imersif.
Dengan mengontrol apa yang dilihat pemain dan kapan mereka melihatnya, Anda dapat memandu perjalanan mereka melalui dunia game dan membuat gameplay lebih dinamis dan menarik.