Ciptakan rasa kemajuan dan tantangan dengan menambahkan berbagai level ke game Anda.

Membuat level adalah aspek penting dari desain game yang dapat secara signifikan meningkatkan daya tarik game Anda secara keseluruhan. Level memberikan struktur dan tantangan yang membuat pemain tetap terlibat dan termotivasi untuk maju melalui game Anda.

Dengan menyusun level yang dirancang dengan baik dengan hati-hati, Anda dapat menciptakan pengalaman yang lebih imersif dan menyenangkan bagi pemain Anda. Apakah Anda seorang pemula atau pengembang game yang berpengalaman, Godot memudahkan untuk membuat level menawan yang akan membuat pemain kembali lagi.

Menyiapkan Game Godot

Sebelum Anda mulai membuat level, penting untuk menyiapkan proyek game 2D Anda Mesin Permainan Godot.

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

Buat adegan baru dan tambahkan a Node2D simpul sebagai simpul akar. Ini akan berfungsi sebagai wadah untuk semua node lain dalam adegan Anda. Sekarang proyek Anda sudah siap, saatnya untuk menambahkan karakter pemain ke TKP.

instagram viewer

Buat adegan baru dengan mengklik kanan di panel Scene dan memilih Adegan Baru. Tambah sebuah KarakterBody2D simpul untuk mewakili karakter pemain. Itu KarakterBody2D node menyediakan fitur bawaan untuk deteksi gerakan dan tabrakan untuk karakter 2D.

Di dalam KarakterBody2D simpul, tambahkan a TabrakanBentuk2D simpul dengan bentuk persegi panjang dan a Sprite simpul untuk mewakili penampilan pemain.

Dengan pengaturan karakter pemain dan visualnya, Anda sekarang dapat fokus untuk membuat level pertama Anda.

Buat Dua Tingkat

Untuk membuat level di Godot, Anda dapat menggunakan file adegan (.tscn) untuk mewakili setiap level secara terpisah. Dengan dua level, Anda dapat menerapkan tata letak unik dan memindahkan platform.

Kode Pemain

Itu KarakterBody2D skrip bertanggung jawab untuk menangani pergerakan pemain berdasarkan input pengguna. Dalam GDScript yang disediakan, Anda dapat menghitung arah gerakan berdasarkan penekanan tombol dan mengatur kecepatan pemain sesuai dengan itu.

Kecepatan pemain menentukan seberapa cepat mereka bergerak, dan bergerak_dan_bertabrakan fungsi menangani deteksi tabrakan.

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Kode Platform

Itu Platform naskah meluas Tubuh Statis2D, yang berarti platform tidak akan bergerak kecuali Anda menerapkan gerakan padanya. Dalam hal ini, Anda dapat menggunakan kecepatan_bergerak variabel untuk mengontrol seberapa cepat platform bergerak.

Platform bergerak bolak-balik secara horizontal dalam rentang yang ditentukan (100 hingga 400 unit dalam contoh ini). Saat mencapai tepi, ia membalikkan arah gerakannya.

# Platform Movement
extends StaticBody2D

const move_speed = 100
var move_direction = Vector2(1, 0)

func _physics_process(delta):
var platform_movement = move_direction * move_speed * delta
translate(platform_movement)

# Change direction when reaching the edge of the platform's path
if position.x > 400or position.x < 100:
move_direction *= -1

Dengan menggunakan skrip ini, Anda dapat membuat pola gerakan yang menarik untuk platform dan merancang pengalaman gameplay yang menarik game platformer Anda.

Menghubungkan Tingkat

Dalam gim biasa, Anda ingin pemain maju dari satu level ke level lainnya dengan mulus. Untuk melakukannya, implementasikan skrip Level Manager yang menangani peralihan level saat pemain melewati batas layar.

Itu Manajer Tingkat skrip melacak nomor level dan ukuran layar saat ini. Ini memuat level awal (level 1) selama _siap(). Itu tingkat_muatan fungsi mengambil nomor level sebagai input, membuat jalur ke file adegan yang sesuai, dan membuat instance adegan level.

Tambahkan level baru sebagai anak dari Manajer Tingkat; ini secara efektif akan mengganti level saat ini.

extends Node2D

var level_number = 1
var screen_size = Vector2()
var is_switching_level = false

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

func load_level(level):
var level_path = "res://Level" + str(level) + ".tscn"
var level_scene = load(level_path)
var level_instance = level_scene.instantiate()
add_child(level_instance)
is_switching_level = false

func switch_level():
if is_switching_level:
return

is_switching_level = true
level_number += 1

if level_number > 2:
level_number = 1

# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position

if player_position.x < 0:
player.position.x = screen_size.x
elif player_position.x > screen_size.x:
player.position.x = 0
elif player_position.y < 0:
player.position.y = screen_size.y
elif player_position.y > screen_size.y:
player.position.y = 0

get_node("Node2D").queue_free()
load_level(level_number)

func _process(delta):
# Check if the player crosses the screen boundary
# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position
var condition1 = player_position.x < 0
var condition2 = player_position.x > screen_size.x
var condition3 = player_position.y < 0
var condition4 = player_position.y > screen_size.y

if condition1 or condition2 or condition3 or condition4 :
switch_level()

Dengan mengimplementasikan Level Manager, Anda dapat dengan mulus bertransisi antar level dan memelihara data pemain di seluruh level, memastikan pengalaman bermain game yang mulus.

Termasuk Fitur Tambahan

Membuat level memungkinkan Anda untuk menambahkan berbagai fitur ke game Anda, menjadikannya lebih menarik dan mengasyikkan bagi pemain.

Koleksi

Tambahkan item koleksi seperti koin, bintang, atau kunci yang dapat dikumpulkan pemain untuk membuka area baru atau menerima hadiah. Koleksi mendorong eksplorasi dan menambahkan lapisan tantangan ke gameplay.

Musuh

Perkenalkan musuh dengan perilaku dan pola gerakan yang berbeda. Musuh menciptakan rintangan untuk diatasi pemain, menambah strategi dan kegembiraan dalam permainan.

Kekuatan bertambah

Sertakan power-up yang meningkatkan kemampuan pemain untuk sementara, seperti peningkatan kecepatan, tak terkalahkan, atau serangan yang ditingkatkan. Power-up memberikan momen pemberdayaan dan dapat membantu pemain mengatasi bagian yang menantang.

Teka-teki

Rancang elemen teka-teki yang harus dipecahkan pemain untuk maju melalui level. Teka-teki menambahkan aspek otak ke gameplay dan dapat membuat pemain merasa berhasil saat mereka mengetahuinya.

Dengan memasukkan fitur tambahan ini ke dalam level Anda, Anda dapat menciptakan pengalaman bermain game yang kaya dan beragam yang memikat pemain dan membuat mereka tetap tenggelam dalam dunia game Anda.

Praktik Terbaik untuk Membuat Level

Saat membuat level, mengingat praktik terbaik tertentu dapat membantu memastikan pengalaman yang dibuat dengan baik dan menyenangkan bagi pemain:

Keseimbangan Kesulitan

Pertahankan kurva kesulitan yang halus di seluruh level Anda. Tingkatkan tantangan secara bertahap agar pemain tetap terlibat tanpa membuat mereka kewalahan. Perkenalkan mekanisme dan tantangan baru secara bertahap, memungkinkan pemain untuk beradaptasi dan belajar.

Mendorong Eksplorasi

Desain level dengan jalur tersembunyi, rahasia, dan area opsional untuk dijelajahi pemain. Eksplorasi memberi penghargaan kepada pemain dengan bonus, barang koleksi, atau pintasan, menambah kedalaman gameplay.

Pengujian dan Iterasi

Mainkan level Anda secara ekstensif untuk mengidentifikasi masalah, bug, atau ketidakseimbangan. Ulangi desain level berdasarkan umpan balik pemain untuk meningkatkan pengalaman keseluruhan.

Visual dan Audio

Perhatikan aspek visual dan audio level Anda. Grafik yang menarik dan efek suara bebas hak cipta dapat berkontribusi secara signifikan pada suasana dan perendaman game Anda.

Aliran Tingkat

Pastikan aliran level lancar dan logis. Pandu pemain melalui level dengan isyarat visual yang jelas, dan hindari jalan buntu atau tata letak yang membingungkan.

Dengan mengikuti praktik terbaik ini, Anda dapat membuat level yang tidak hanya menyenangkan untuk dimainkan, tetapi juga dirancang dengan baik dan koheren dalam konteks game Anda.

Level Membuat Game Godot Anda Lebih Menarik

Level memainkan peran penting dalam membuat game Godot lebih menarik bagi pemain. Level yang dirancang dengan baik memberikan rasa kemajuan, pencapaian, dan eksplorasi, memikat pemain untuk terus bermain.

Dengan memahami prinsip desain level, memanfaatkan kemampuan Godot, dan menerapkannya fitur tambahan, Anda dapat membuat level yang memikat pemain dan meningkatkan game Anda ke yang baru ketinggian.