Tambahkan suasana dan mekanisme gameplay yang unik dengan naik turunnya matahari.
Siklus siang-malam dapat menambah elemen imersif pada game Anda, menambah variasi pada visual, dan menciptakan mekanisme yang menarik. Game seperti Minecraft, Animal Crossing, dan Don't Starve menggunakan teknik ini secara efektif, dan ini adalah salah satu teknik yang mungkin Anda pertimbangkan untuk ditambahkan ke game Anda sendiri, terutama yang memiliki elemen real-time.
Untungnya, di Godot 4, mencapai siklus siang-malam menjadi lebih mudah dari sebelumnya.
Menyiapkan Game Godot
Sebelum mendalami penerapan siklus siang-malam, siapkan fondasi untuk game Anda. Mulailah dengan membuat proyek 2D baru di Godot 4. Siapkan proyek Anda dengan pengaturan proyek yang diperlukan.
Kode yang digunakan dalam artikel ini tersedia di sini Repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.
Sekarang, buat karakter pemain. Dalam adegan Anda, tambahkan a KarakterTubuh2D. Di dalamnya, tambahkan a Bentuk Tabrakan2D
dengan bentuk persegi panjang dan a Sprite2D. Ini akan mewakili karakter Anda secara visual.Untuk memperbolehkan player bergerak, Anda dapat menggunakan kode GDScript berikut. Lampirkan skrip ini ke node karakter Anda:
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZEROif Input.is_action_pressed("ui_left"):
input_dir.x -= 1if Input.is_action_pressed("ui_right"):
input_dir.x += 1if Input.is_action_pressed("ui_up"):
input_dir.y -= 1if Input.is_action_pressed("ui_down"):
input_dir.y += 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
Kode ini memungkinkan pemain untuk bergerak ke kiri, kanan, atas, dan bawah menggunakan tombol panah. Anda juga bisa tambahkan beberapa musuh untuk dihindari pemain Anda. Menggunakan Tubuh Statis2D node untuk musuh-musuh ini dan sesuaikan bentuk dan posisinya.
Tambahkan Timer untuk Siklus Siang dan Malam
Untuk membuat siklus siang-malam, Anda memerlukan pengatur waktu yang berjalan terus menerus, bergantian antara fase siang dan malam. Pengatur waktu ini akan bertanggung jawab untuk melacak perjalanan waktu dalam game Anda.
Tambahkan node Timer ke adegan Godot Anda. Anda dapat melakukan ini dengan mengklik kanan pada panel Scene, memilih Tambahkan Node, lalu mencari pengatur waktu di perpustakaan simpul.
Ganti nama node Timer menjadi sesuatu yang bermakna seperti Pengatur Waktu Siang Malam untuk kejelasan. Konfigurasikan properti simpul Timer di panel Inspektur. Secara khusus, atur Waktu Tunggu properti ke 0 (ini adalah penundaan awal sebelum pengatur waktu dimulai) dan periksa Satu tembakan properti sehingga pengatur waktu berulang.
Sekarang, tambahkan kode GDScript yang mengatur siklus siang-malam:
extends Node2D
var day_duration = 30# Duration of the day in seconds
var night_duration = 30# Duration of the night in secondsvar is_day = true
func _ready():
# Start the timer when the scene loads
$DayNightTimer.start()func _on_DayNightTimer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false# Add your code here for night-specific actions or visual changes
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Add your code here for day-specific actions or visual changes
Dalam _siap fungsi, mulai Pengatur Waktu Siang Malam saat adegan dimuat untuk memulai siklus siang-malam. Itu _on_DayNightTimer_timeout fungsi akan berjalan setiap kali pengatur waktu mencapai nol, yaitu saat waktunya transisi antara siang dan malam.
Dengan mengikuti langkah-langkah ini, Anda akan memiliki pengatur waktu siang-malam yang berfungsi yang bertransisi antara siang dan malam, memungkinkan Anda menambahkan elemen gameplay dinamis dan perubahan visual ke game Godot Anda berdasarkan waktu.
Menyesuaikan Latar Belakang untuk Siang dan Malam
Untuk melengkapi siklus siang-malam, Anda memerlukan cara untuk merepresentasikan transisi antara siang dan malam secara visual. Anda dapat menggunakan yang bawaan WarnaRect node untuk membuat latar belakang yang cocok untuk siang dan malam. Pendekatan ini memungkinkan transisi yang lebih mulus dan kontrol visual yang lebih besar.
Dalam adegan Godot Anda, tambahkan a WarnaRect simpul. Node ini akan berfungsi sebagai latar belakang Anda yang berubah warna untuk mewakili siang dan malam. Ganti nama WarnaRect simpul ke sesuatu yang bermakna seperti Latar BelakangRect. Posisikan itu sebagai lapisan latar belakang, pastikan menutupi seluruh area pandang.
Di panel Inspektur, atur Warna properti ke warna latar belakang awal Anda, yang seharusnya mewakili siang hari. Misalnya, Anda bisa menggunakan Warna (0,5, 0,5, 0,8) untuk langit siang hari yang biru muda.
Sekarang, perbarui kode GDScript Anda agar berfungsi dengan WarnaRect simpul:
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false# Add your code here for night-specific actions or visual changes
# Update the background color to indicate day
$BackgroundRect.color = Color(0.5, 0.5, 0.8) # Light blue for day
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true# Add your code here for day-specific actions or visual changes
# Update the background color to indicate night
$BackgroundRect.color = Color(0, 0, 0) # Black for night
Perbarui warna Latar BelakangRect node untuk mencerminkan waktu hari itu. Misalnya, atur menjadi hitam saat bertransisi ke malam hari, sehingga menciptakan latar belakang gelap. Saat bertransisi ke siang hari, atur ke biru muda.
Efek Suara untuk Siklus Siang-Malam
Efek suara dapat memainkan peran penting dalam meningkatkan pengalaman dan realisme siklus siang-malam Anda di Godot. Mereka memberikan isyarat pendengaran kepada pemain, membuat transisi antara siang dan malam menjadi lebih menawan. Anda bisa dengan mudah tambahkan efek suara ke game Godot Anda.
Sebelum memulai, pastikan Anda memiliki sumber audio (file suara) yang mewakili suara siang dan malam. Misalnya, Anda mungkin mendengar suara kicau burung di siang hari dan suara jangkrik atau burung hantu di malam hari.
Dalam adegan Godot Anda, tambahkan dua AudioStreamPlayer2D node dan beri nama dengan tepat. Anda dapat menamainya seperti ini $Suara Siang Hari Dan $Suara Malam Hari.
Sekarang, perbarui kode GDScript untuk mengatur transisi suara antara siang dan malam:
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false
# Play daytime sounds
$NighttimeSounds.stop() # Stop nighttime sounds
$DaytimeSounds.play() # Start daytime sounds
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Play nighttime sounds
$DaytimeSounds.stop() # Stop daytime sounds
$NighttimeSounds.play() # Start nighttime sounds
Saat pengatur waktu siang-malam habis, kode ini memeriksa fase mana yang harus ditransisikan dan memutar suara yang sesuai untuk dicocokkan.
Jangan ragu untuk menyesuaikannya efek suara bebas hak cipta agar sesuai dengan tema dan suasana permainan Anda. Anda juga dapat melapisi beberapa trek audio atau menggunakan efek audio (reverb, echo, dll.) untuk menciptakan pengalaman pendengaran yang lebih kaya.
Jadikan Game Godot Anda Lebih Menarik Dengan Siklus Siang-Malam
Menerapkan siklus siang-malam di game Godot Anda dapat meningkatkan pengalaman dan interaksi pemain secara signifikan. Ini menambah kedalaman dunia game Anda, memperkenalkan elemen gameplay dinamis, dan memungkinkan penyampaian cerita yang kreatif.
Ingatlah untuk menyesuaikan siklus siang-malam dengan tema dan mekanisme unik game Anda, dan jangan ragu untuk bereksperimen dengan efek visual dan gameplay yang berbeda untuk menciptakan game yang benar-benar menawan pengalaman.