Tingkatkan pengalaman bermain game Anda di Godot dengan menggabungkan sistem kesehatan dan kerusakan.

Sistem kesehatan dan kerusakan memungkinkan pemain untuk menerima kerusakan dan kehilangan poin kesehatan saat menghadapi rintangan atau musuh. Ini juga memungkinkan mereka memulihkan kesehatan melalui berbagai cara, seperti power-up atau paket kesehatan.

Godot, mesin game sumber terbuka yang populer, memberikan pendekatan langsung dan fleksibel untuk mengimplementasikan sistem tersebut. Anda dapat dengan mudah membuat game 2D dengan karakter pemain, musuh, dan bilah kesehatan untuk mewakili kesehatan pemain secara visual.

Menyiapkan Game Godot

Pertama, atur struktur proyek dasar di mesin permainan Godot dan buat node yang diperlukan.

Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.

Buat adegan baru untuk karakter pemain. Tambah sebuah KinematikaBody2D simpul, dan di dalamnya, tambahkan a TabrakanBentuk2D dengan bentuk persegi panjang untuk mewakili hitbox pemain. Lampirkan a

instagram viewer
Sprite simpul ke KinematikaBody2D untuk menampilkan karakter pemain.

# Player.gd
extends KinematicBody2D

const SPEED = 200

var velocity = Vector2.ZERO
var health = 100

func _physics_process(delta):
velocity.x = 0
velocity.y = 0

if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEED

if Input.is_action_pressed("ui_down"):
velocity.y += SPEED
elif Input.is_action_pressed("ui_up"):
velocity.y -= SPEED

move_and_collide(velocity * delta)

Sekarang, Anda memiliki karakter pemain dasar dalam proyek Godot Anda. Anda dapat memindahkan pemain menggunakan tombol panah, tetapi belum ada sistem kesehatan.

Merancang Elemen UI Bilah Kesehatan

Sekarang, Anda dapat menambahkan elemen UI untuk merepresentasikan kesehatan pemain secara visual. Godot menyediakan kontrol bawaan yang disebut TeksturKemajuan yang bekerja dengan baik untuk tujuan ini.

Buat simpul baru untuk HUD (head-up display). Tambah sebuah Lapisan Kanvas simpul, dan di dalamnya, tambahkan a TeksturKemajuan simpul. Sesuaikan tampilan TeksturKemajuan simpul sesuai dengan gaya dan tema gim Anda.

Untuk menampilkan bilah kesehatan menggunakan TeksturKemajuan di HUD, Anda perlu menetapkan tekstur untuknya. TeksturKemajuan menggunakan dua tekstur: satu untuk latar belakang dan satu lagi untuk bagian yang terisi (kemajuan).

Di panel Inspektur, cari Tekstur bagian. Di bawah Tekstur, Anda akan menemukan properti yang disebut Di bawah Dan Lebih. Klik Memuat tombol untuk setiap properti dan pilih gambar yang sesuai.

Lampirkan skrip ke adegan HUD untuk memperbarui bilah kesehatan berdasarkan kesehatan pemain:

# HUD.gd
extends CanvasLayer

onready var healthBar := $TextureProgress

func _ready():
update_health_bar()

func update_health_bar():
var hb = get_parent().get_node("KinematicBody2D")
healthBar.value = hb.health

Menangani Kesehatan Pemain

Untuk mengurangi kesehatan pemain saat melewati batas layar, Anda dapat menambahkan a pemeriksaan kondisional menggunakan pernyataan if. Jika pemain melampaui layar, Anda dapat mengurangi kesehatannya. Inilah cara Anda dapat mencapai ini:

# player.gd
extends KinematicBody2D

const SPEED = 200
const DAMAGE_AMOUNT = 0.1

var velocity = Vector2.ZERO
var health = 100

# Screen boundaries
var screen_size
var margin = 20

func _ready():
screen_size = get_viewport_rect().size

func _physics_process(delta):
#... (existing movement code)
move_and_collide(velocity * delta)

var c1 = position.x < -margin
var c2 = position.x > screen_size.x + margin
var c3 = position.y < -margin
var c4 = position.y > screen_size.y + margin

# Check if the player is outside the screen boundaries
if c1 or c2 or c3 or c4:
take_damage_on_screen_exit()

func take_damage_on_screen_exit():
health -= DAMAGE_AMOUNT
if health <= 0:
health = 0
# Game over logic here

update_health_ui()

Tambahkan perbarui_kesehatan_ui() berfungsi di pemain.gd skrip untuk memanggil skrip HUD dan memperbarui bilah kesehatan.

# Player.gd
extends KinematicBody2D

#... (other code)

func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()

Dengan perubahan ini, pemain sekarang akan menerima damage saat melewati batas layar, dan UI health bar akan diperbarui sesuai dengan itu.

Termasuk Fitur Tambahan

Sistem kesehatan dan kerusakan dapat diperluas dengan berbagai fitur tambahan untuk meningkatkan pengalaman bermain game. Beberapa ide termasuk:

Penjemputan Kesehatan

Menerapkan pengambilan kesehatan yang memungkinkan pemain memulihkan kesehatannya saat dikumpulkan. Penjemputan kesehatan dapat berupa barang koleksi yang tersebar di seluruh dunia game atau hadiah untuk mengalahkan musuh.

Saat pemain berinteraksi dengan pengambilan kesehatan, kesehatan mereka harus meningkat dalam jumlah tertentu, hingga nilai maksimum. Anda dapat menggunakan skrip baru untuk item penjemputan kesehatan dan menangani logika tabrakan dan pemulihan kesehatan.

Power-Up Tak Terkalahkan

Buat power-up yang memberikan pemain tak terkalahkan sementara untuk waktu yang terbatas. Saat pemain mengumpulkan kekuatan tak terkalahkan, mereka menjadi kebal terhadap kerusakan dari musuh atau bahaya lainnya.

Terapkan pengatur waktu untuk melacak durasi yang tersisa dari keadaan tak terkalahkan, dan saat pengatur waktu habis, pemain kembali ke keadaan rentannya.

Jenis Musuh yang Berbeda

Rancang berbagai musuh dengan pola serangan, nilai kerusakan, dan perilaku yang berbeda. Setiap jenis musuh dapat menimbulkan tantangan unik bagi pemain dan membutuhkan strategi berbeda untuk dikalahkan.

Misalnya, beberapa musuh mungkin bergerak lebih cepat, memberikan lebih banyak kerusakan, atau memiliki titik lemah tertentu yang dapat dieksploitasi oleh pemain. Menambahkan keragaman pada pertemuan musuh membuat gameplay tetap menarik dan mencegahnya menjadi monoton.

Regenerasi Kesehatan

Terapkan regenerasi kesehatan dari waktu ke waktu untuk memberi penghargaan kepada pemain karena menghindari kerusakan. Ketika pemain tidak mengalami kerusakan untuk durasi tertentu, kesehatan mereka secara bertahap beregenerasi ke ambang tertentu.

Namun, pastikan tingkat regenerasi seimbang untuk menghindari situasi di mana pemain hanya bisa menunggu kesehatannya pulih sepenuhnya tanpa tantangan apa pun.

Umpan Balik Audio dan Visual

Berikan umpan balik audio dan visual yang menarik saat pemain mengalami kerusakan, memulihkan kesehatan, atau mengalahkan musuh.

Berdampak efek suara bebas hak cipta, guncangan layar, efek partikel, dan isyarat visual dapat meningkatkan pencelupan pemain dan membuat sistem kesehatan dan kerusakan terasa lebih dinamis dan menarik.

Ingatlah untuk mempertimbangkan keseimbangan keseluruhan dari fitur tambahan yang Anda perkenalkan. Teruslah uji coba dan kumpulkan umpan balik untuk memastikan bahwa gameplay tetap menantang, menyenangkan, dan bergerak dengan baik di sepanjang game.

Membuat Game Godot Lebih Menarik Dengan Sistem Kesehatan dan Kerusakan

Mengintegrasikan sistem kesehatan dan kerusakan ke dalam game Godot Anda menambah kedalaman dan tantangan, membuat gameplay lebih menarik bagi pemain. Ini memperkenalkan elemen risiko-hadiah, karena pemain perlu menyusun strategi dan mengelola kesehatan mereka secara efektif untuk maju dalam permainan.

Selain itu, representasi visual dari bilah kesehatan memberi pemain umpan balik penting tentang keadaan mereka saat ini, meningkatkan rasa pencelupan mereka.