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ı.
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.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)
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 StaticBody2Dconst 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 = falsefunc _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 = falsefunc switch_level():
if is_switching_level:
returnis_switching_level = true
level_number += 1if 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.positionif 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 = 0get_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.