Oyunlarınıza çeşitli seviyeler ekleyerek bir ilerleme ve meydan okuma duygusu yaratın.

Seviye oluşturmak, oyun tasarımının önemli bir yönüdür ve oyununuzun genel çekiciliğini önemli ölçüde artırabilir. Seviyeler, oyuncuların oyununuz boyunca ilerlemeleri için meşgul ve motive olmalarını sağlayan yapıyı ve zorlukları sağlar.

İyi tasarlanmış seviyeleri dikkatlice işleyerek, oyuncularınız için daha sürükleyici ve eğlenceli bir deneyim yaratabilirsiniz. İster acemi ister deneyimli bir oyun geliştiricisi olun, Godot, oyuncuların daha fazlası için geri gelmesini sağlayacak büyüleyici seviyeler oluşturmayı kolaylaştırır.

Godot Oyununu Kurmak

Seviye oluşturmaya başlamadan önce, 2B oyun projenizi Godot Oyun Motoru.

Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.

Yeni bir sahne oluşturun ve bir Düğüm2D kök düğüm olarak düğüm. Bu, sahnenizdeki diğer tüm düğümler için kap görevi görecektir. Artık projeniz kurulduğuna göre, oyuncu karakterini sahneye ekleme zamanı.

instagram viewer

Sahne panelinde sağ tıklayarak ve öğesini seçerek yeni bir sahne oluşturun. Yeni Sahne. Ekle KarakterBody2D oyuncu karakterini temsil eden düğüm. bu KarakterBody2D düğümü, 2B karakterler için hareket ve çarpışma tespiti için yerleşik özellikler sağlar.

İçinde KarakterBody2D düğüm, bir ekle Çarpışma Şekli2D dikdörtgen şeklinde bir düğüm ve karakter oyuncunun görünümünü temsil eden düğüm.

Oyuncu karakteri ve görselleri ayarlandıktan sonra artık ilk seviyenizi oluşturmaya odaklanabilirsiniz.

İki Düzey Oluştur

Godot'ta seviyeler oluşturmak için sahne dosyalarını kullanabilirsiniz (.tscn) her seviyeyi ayrı ayrı temsil etmek. İki seviye ile benzersiz düzenler ve hareketli platformlar uygulayabilirsiniz.

Oyuncu Kodu

bu KarakterBody2D komut dosyası, oyuncunun hareketini kullanıcı girdisine göre işlemekten sorumludur. Sağlanan GDScript'te, basılan tuşlara göre hareket yönünü hesaplayabilir ve oynatıcının hızını buna göre ayarlayabilirsiniz.

Oyuncunun hızı, ne kadar hızlı hareket ettiğini belirler ve hareket_ve_collide işlevi, çarpışma algılama ile ilgilenir.

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)

Platform Kodu

bu platformu komut dosyası uzanır StatikBody2D, bu, siz ona bir hareket uygulamadığınız sürece platformun hareket etmeyeceği anlamına gelir. Bu durumda, kullanabilirsiniz hareket hızı platformun ne kadar hızlı hareket ettiğini kontrol etmek için değişken.

Platform, belirtilen aralıkta (bu örnekte 100 ila 400 birim) yatay olarak ileri geri hareket eder. Kenara ulaştığında hareket yönünü tersine çevirir.

# 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

Bu komut dosyalarını kullanarak platformlar için ilginç hareket kalıpları oluşturabilir ve ilgi çekici oyun deneyimleri tasarlayabilirsiniz. platform oyunlarınız.

Bağlantı Düzeyleri

Tipik bir oyunda, oyuncuların bir seviyeden diğerine sorunsuz bir şekilde ilerlemesini isteyeceksiniz. Bunu yapmak için, oyuncu ekran kenarlığını geçtiğinde seviye değiştirmeyi işleyen bir Seviye Yöneticisi komut dosyası uygulayın.

bu Seviye Yöneticisi komut dosyası, geçerli düzey numarasını ve ekran boyutunu takip eder. Sırasında başlangıç ​​seviyesini (seviye 1) yükler. _hazır(). bu yük_seviyesi işlev girdi olarak bir seviye numarası alır, karşılık gelen sahne dosyasına giden yolu oluşturur ve seviyenin sahnesini başlatır.

Yeni seviyeyi şu öğenin alt öğesi olarak ekleyin: Seviye Yöneticisi; bu, mevcut seviyeyi etkili bir şekilde değiştirecektir.

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()

Seviye Yöneticisini uygulayarak seviyeler arasında sorunsuz bir şekilde geçiş yapabilir ve seviyeler arasında oyuncu verilerini koruyarak sorunsuz bir oyun deneyimi sağlayabilirsiniz.

Ek Özellikler Dahil

Seviyeler oluşturmak, oyununuza çeşitli özellikler eklemenizi sağlayarak oyunu oyuncular için daha ilgi çekici ve heyecanlı hale getirir.

koleksiyon

Oyuncuların yeni alanların kilidini açmak veya ödüller almak için toplayabilecekleri madeni para, yıldız veya anahtar gibi toplanabilir öğeler ekleyin. Koleksiyon öğeleri, keşfetmeyi teşvik eder ve oyuna bir meydan okuma katmanı ekler.

düşmanlar

Farklı davranış ve hareket modellerine sahip düşmanları tanıtın. Düşmanlar, oyuncunun üstesinden gelmesi için engeller oluşturarak oyuna strateji ve heyecan katar.

Güç kaynağını çalıştırın

Arttırılmış hız, yenilmezlik veya geliştirilmiş saldırılar gibi oyuncunun yeteneklerini geçici olarak artıran güçlendirmeleri dahil edin. Güçlendirmeler, güçlendirme anları sağlar ve oyuncuların zorlu bölümlerin üstesinden gelmesine yardımcı olabilir.

Bulmacalar

Oyuncuların seviyede ilerlemek için çözmesi gereken bulmaca öğeleri tasarlayın. Bulmacalar, oyuna beyinsel bir yön katar ve oyuncuların bunları çözdüklerinde kendilerini başarılı hissetmelerini sağlayabilir.

Bu ek özellikleri seviyelerinize dahil ederek, oyuncuları büyüleyen ve onları oyun dünyanıza kaptıran zengin ve çeşitli bir oyun deneyimi yaratabilirsiniz.

Düzey Oluşturmak İçin En İyi Uygulamalar

Seviyeleri oluştururken bazı en iyi uygulamaları göz önünde bulundurmak, oyuncular için iyi hazırlanmış ve eğlenceli bir deneyim sağlamaya yardımcı olabilir:

Denge Zorluğu

Seviyeleriniz boyunca pürüzsüz bir zorluk eğrisi koruyun. Oyuncuları bunaltmadan meşgul tutmak için zorlukları kademeli olarak artırın. Oyuncuların uyum sağlamasına ve öğrenmesine izin vererek, yeni mekanikleri ve zorlukları kademeli olarak tanıtın.

Keşfetmeyi Teşvik Edin

Oyuncuların keşfetmesi için gizli yollar, sırlar ve isteğe bağlı alanlarla seviyeler tasarlayın. Keşif, oyuncuları bonuslar, koleksiyon öğeleri veya kısayollarla ödüllendirerek oyuna derinlik katar.

Test Etme ve Yineleme

Seviyelerinizi kapsamlı bir şekilde test edin sorunları, hataları veya dengesizlikleri belirlemek için. Genel deneyimi geliştirmek için oyuncu geri bildirimlerine dayalı seviye tasarımını yineleyin.

Görsel ve Ses

Seviyelerinizin görsel ve işitsel yönlerine dikkat edin. İlgi çekici grafikler ve telif hakkı içermeyen ses efektleri, oyununuzun atmosferine ve sürükleyiciliğine önemli ölçüde katkıda bulunabilir.

Seviye Akışı

Seviye akışının sorunsuz ve mantıklı olduğundan emin olun. Net görsel ipuçlarıyla seviye boyunca oyunculara rehberlik edin ve çıkmaz sokaklardan veya kafa karıştırıcı düzenlerden kaçının.

Bu en iyi uygulamalara bağlı kalarak, sadece oynaması keyifli değil, aynı zamanda oyununuz bağlamında iyi tasarlanmış ve tutarlı seviyeler oluşturabilirsiniz.

Seviyeler Godot Oyunlarınızı Daha İlgi Çekici Hale Getirir

Seviyeler, Godot oyunlarını oyuncular için daha ilgi çekici hale getirmede çok önemli bir rol oynar. İyi tasarlanmış seviyeler, oyuncuları oynamaya devam etmeye teşvik ederek bir ilerleme, başarı ve keşif duygusu sağlar.

Seviye tasarımı ilkelerini anlayarak, Godot'nun yeteneklerinden yararlanarak ve uygulayarak ek özelliklerle, oyuncuları büyüleyen ve oyununuzu yeni seviyelere yükselten seviyeler oluşturabilirsiniz. yükseklikler.