Oyunlarınız için basit ekran menüleri gibi davranacak özel düğmeleri ayrı sahnelerde nasıl görüntüleyeceğinizi öğrenin.

Temel Çıkarımlar

  • Godot'taki özel menüler, kolay gezinme ve oyun özelliklerine hızlı erişim sağlayarak etkileşimi ve kullanıcı deneyimini geliştirebilir.
  • Godot, oyun motorundaki kontrol düğümlerini kullanarak özel kullanıcı arabirimi menüleri oluşturmak için güçlü bir araç seti sağlar.
  • Godot'ta başlat menüleri, duraklatma menüleri ve oyun bitti ekranları gibi menüleri, uygun düğümler ekleyerek ve bunların işlevlerini GDScript kullanarak uygulayarak oluşturabilirsiniz.

Özel menüler, Godot oyununuzun katılımını ve kullanıcı deneyimini büyük ölçüde geliştirebilir. Sezgisel ve görsel olarak çekici menüler oluşturarak oyunculara kolay gezinme ve çeşitli oyun özelliklerine hızlı erişim sağlayabilirsiniz.

Neyse ki Godot, kontrol düğümlerini kullanarak özel kullanıcı arabirimi menüleri oluşturmak için güçlü bir araç seti sağlar.

Godot Oyununu Kurmak

Başlamak için, bir 2B oyun sahnesi oluşturun.

instagram viewer
Godot oyun motoru. Ekle KinematikBody2D oyuncu karakteri için düğüm ve bir Çarpışma Şekli2D düğümü, oyuncunun çarpışma alanını temsil eden bir dikdörtgen şekli tanımlayın.

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

Ek olarak, bir Sprite2D oyuncu karakterini görsel olarak görüntülemek için düğüm. Aşağıda, oyuncu hareketini etkinleştirmek için bir GDScript kod parçacığı bulunmaktadır:

KinematicBody2D'yi genişletir

sabit HIZ = 200
sabit AĞIRLIK = 500
var hız = Vector2.ZERO

işlev _fizik_işlem (delta):
var hareket_yönü = 0

eğer Girdi.is_action_pressed("ui_right"):
hareket_yönü += 1

eğer Girdi.is_action_pressed("ui_sol"):
hareket_yönü -= 1

velosite.x = hareket_yönü * HIZ
hız.y += GRAVITY * delta
hız = move_and_slide (hız, Vector2.UP)

Bu kodda, bir sabit tanımlayın HIZ oyuncunun hareket hızını kontrol etmek için. Kullanıcı girişine yanıt olarak hız değişkenini güncelleyin ve arayın move_and_slide() çarpışmaları ve oyunun yerçekimini hesaba katarak oyuncuyu hareket ettirmek.

Bir Başlat Menüsü Oluşturun

Godot'ta bir başlat menüsü oluşturmak için, sahnenin kökü olarak bir Kontrol düğümü ekleyin. Bu Kontrol düğümünün alt öğesi olarak bir Etiket düğümü ekleyin ve metnini şu şekilde ayarlayın: Basit Oyun. Etiketin yazı tipini, boyutunu ve rengini oyununuzun stiline uyacak şekilde özelleştirebilirsiniz.

Bundan sonra, Kontrol düğümünün alt öğesi olarak bir Button düğümü ekleyin. Düğmenin metnini şu şekilde ayarlayın: Oyun oynamak. için özel kod yazın. Oyun oynamak işlevselliğini işlemek için düğme:

Kontrolü genişletir

işlev _ready():
var oynatmaDüğmesi = $Düğmesi
playButton.connect("basıldı", öz, "_on_PlayButton_pressed")

işlev _on_PlayButton_pressed():
# Oyun sahnesini yükleyin
var gameScene = önyükleme("res://GameScene.tscn")

# Oyun sahnesine geçiş
get_tree().change_scene (oyunSahnesi)

Bu kod, preslenmiş sinyali oynatma düğmesi için _on_PlayButton_pressed işlev. Bu işlev, oyun sahnesini şunu kullanarak yükler: önyükleme() ve bunun bir örneğini oluşturur. Daha sonra kullanır sahne_değiştir() oyun sahnesine geçmek için

Benzer şekilde, bir çıkış oyuncuların oyundan çıkmak için kullanabilecekleri buton:

işlev _ready():
var oynatmaDüğmesi = $Düğmesi
var çıkışDüğmesi = $Düğme2
playButton.connect("basıldı", öz, "_on_PlayButton_pressed")
çıkışButton.connect("basıldı", öz, "_on_ExitButton_pressed")

işlev _on_ExitButton_pressed():
# Oyundan çık
get_tree().quit()

Bu kod, preslenmiş çıkış düğmesinin sinyalini _on_ExitButton_pressed işlev. Bu işlev çağrıları çıkış yapmak() oyundan çıkmak için

Duraklat Menüsünü Oluşturun

Godot oyununuza bir duraklatma menüsü eklemek için, duraklatma menüsünün kökü olarak bir Kontrol düğümü olan yeni bir sahne oluşturun. için bir etiket de dahil olmak üzere menünün görsel öğelerini tasarlayın. duraklatıldı oyuna devam etmek, ana menüye dönmek ve oyundan çıkmak için ve düğmeleri.

Sahneyi ana oyunun alt düğümü olarak ekleyin. Kontrol düğümüne eklenen komut dosyasına aşağıdaki kodu ekleyin:

Kontrolü genişletir

işlev _ready():
$btnResume.connect("basıldı", öz, "_on_resume_button_pressed")
$btnHome.connect("basıldı", öz, "_on_menu_button_pressed")
$btnExit.connect("basıldı", öz, "_on_exit_button_pressed")
duraklama_modu = Düğüm. PAUSE_MODE_PROCESS
get_tree().duraklatıldı = yanlış
self.hide()

işlev _input (olay):
eğer event.is_action_pressed("ui_cancel"):
eğerOlumsuz self.is_visible_in_tree():
# Duraklatma menüsü görünmediğinde oyunu duraklatın
self.show()
get_tree().duraklatıldı = doğru
başka:
# Duraklatma menüsü görünür durumdayken oyunu durdurun
self.hide()
get_tree().duraklatıldı = yanlış

işlev _on_resume_button_pressed():
# Duraklatma menüsünü gizleyin ve oyuna devam edin
self.hide()
get_tree().duraklatıldı = yanlış

işlev _on_menu_button_pressed():
# Ana menüye dön
get_tree().change_scene("res://StartMenu.tscn")

işlev _on_exit_button_pressed():
# Oyundan çık
get_tree().quit()

İçinde _hazır() işlevi, bağlayın preslenmiş özgeçmiş, ana sayfa ve çıkış düğmelerinin ilgili işlevlerine sinyali: _on_resume_button_pressed(), _on_menu_button_pressed(), Ve _on_exit_button_pressed().

Yı kur duraklama_modu düğümün düğüm PAUSE_MODE_PROCESS. Bu, duraklatma menüsü görünür durumdayken oyunun çalışmaya devam etmesini sağlar. Varsayılan olarak, kullanarak duraklatma menüsünü gizleyin. self.hide() ve ayarla get_tree().duraklatıldı ile YANLIŞ oyunun başlangıçta duraklatılmaması için.

Sonraki, bir if ifadesi kullanın içinde _input (olay) olup olmadığını kontrol etme işlevi ui_cancel eyleme basılır. Duraklatma menüsü şu anda görünmüyorsa, duraklatma menüsünü ve ayarını göstererek oyunu duraklatabilirsiniz. get_tree().duraklatıldı ile doğru.

Game Over Ekranı Oluşturma

Godot'ta ekran üzerinden oyun uygulamak için, adında ayrı bir sahne oluşturun. GameOver.tscn UI öğelerini ve işlevselliğini tanımlamak için. Oyuncu, oyunun sonunu belirten ekran sınırlarını aştığında bu sahneyi alt düğüm olarak ekleyebilirsiniz.

Godot'ta yeni bir sahne açın ve sahnenin kökü olarak bir Kontrol düğümü ekleyin. Kontrol düğümünün içine, görüntülemek için bir Etiket düğümü ekleyin. Oyun bitti metin. Etiketin yazı tipini, boyutunu ve rengini oyununuzun görsel stiline göre özelleştirin.

Sonra, için Düğme düğümleri ekleyin Tekrar oyna Ve çıkış seçenekler. Bunları ekranda uygun şekilde konumlandırın.

Tıklandığında eylemleri işlemek için düğme sinyallerini ilgili işlevlerine bağlayın. Örneğin, Tekrar oyna adlı bir işleve düğme onPlayAgainBasıldı ve çıkış adlı bir işleve düğme onExitPressed.

Düğme işlevselliğini yönetmek için oyun sahnesinin GDScript kodunda karşılık gelen işlevleri tanımlamanız gerekir. İşte bir örnek:

Kontrolü genişletir

işlev _ready():
$Button.connect("basıldı", öz, "onPlayAgainBasıldı")
$Button2.connect("basıldı", öz, "onExitBasıldı")

PlayAgainPressed() işlevi:
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)

ExitPressed() işlevi:
get_tree().quit() # Oyun uygulamasını kapatın

ayarını yaptıktan sonra GameOver.tscn gerekli düğme işlevselliğini belirledikten sonra, oyunu ekranda görüntülemek için ana oyun sahnesinde aşağıdaki kodu kullanabilirsiniz:

KinematicBody2D'yi genişletir

işlev _fizik_işlem (delta):
# Oyuncunun ekran sınırlarını aşıp aşmadığını kontrol edin
var screen_size = get_viewport_rect().size
eğer hız.y > ekran_boyutu.y veya hız.y < 0:
show_game_over_screen()

func show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")

Oyun Bitti ekranı, oynatıcının yeniden başlatması veya çıkması için düğmelerle birlikte şuna benzer bir görünüme sahip olacaktır:

Ek Özellikler Dahil

Kontrol düğümlerini kullanarak Godot'ta özel UI menüleri oluştururken, menülerinizin işlevselliğini ve görsel çekiciliğini geliştirmek için çeşitli özellikler ekleme esnekliğine sahipsiniz. İşte dikkate alınması gereken bazı fikirler.

Animasyonlu Geçişler

Fade-ins, slide-ins veya ölçekleme efektleri gibi farklı menü ekranları arasında yumuşak geçişler ekleyin. Bunu, araları veya animasyon oynatıcıları kullanarak zaman içinde kontrol düğümlerinin özelliklerini değiştirerek başarabilirsiniz.

Ses efektleri

Oynatıcı menü düğmelerine bastığında sesli geri bildirim sağlamak için ses efektleri uygulayın. Menülerin daha duyarlı ve ilgi çekici hissettirmesi için düğme tıklamaları, menü geçişleri veya diğer etkileşimler için farklı sesler çalabilirsiniz.

Godot'un yerleşik ses sistemi, sesleri uygun zamanlarda çalmayı kolaylaştırır.

Görsel efektler

Menülerinize görsel efektler eklemek için gölgelendiriciler veya parçacık sistemleri kullanın. Örneğin, seçilen düğmelere ince bir parlaklık efekti uygulayabilir veya belirli menü eylemleri gerçekleştiğinde tetiklenen parçacık efektleri oluşturabilirsiniz. Bu efektler, kullanıcı arayüzünüze gösterişli ve sürükleyici bir his katabilir.

Arka plan müziği

oynamayı düşünün telif hakkı içermeyen fon müziği Daha sürükleyici bir atmosfer yaratmak için her menü ekranına özel. Arka plan müziğini yönetmek ve oynatıcı menüler arasında gezinirken farklı parçalar arasında sorunsuz geçişler sağlamak için Godot'ta ses akışlarını veya ses veriyollarını kullanabilirsiniz.

Yerelleştirme Desteği

Oyununuzu birden çok dile çevirmeyi planlıyorsanız, kullanıcı arabirimi menülerinize yerelleştirme desteği eklemeyi düşünün.

Seçilen dile göre etiketlerin ve düğmelerin metin içeriğini dinamik olarak değiştirmek için bir mekanizma sağlayın. Godot'nun yerelleştirme araçları ve kaynakları, çok dilli UI öğelerinin yönetilmesine yardımcı olabilir.

Ek özelliklerin genel kullanıcı deneyimini geliştirdiğinden ve gezinmenin sezgisel olduğundan emin olmak için menülerinizi gerçek kullanıcılarla test etmeyi ve yinelemeyi unutmayın. Sorunsuz ve yanıt veren UI etkileşimlerini sağlamak için özellikle animasyonları ve görsel efektleri kullanırken performans hususlarına dikkat edin.

Özel Kullanıcı Arayüzü Menüsüyle Godot Oyunlarını Daha İlgi Çekici Hale Getirmek

Özel kullanıcı arabirimi menüleri, oyuncu katılımında çok önemli bir rol oynayabilir. Sezgisel gezinme sağlar, oyun özelliklerine kolay erişim sağlar ve oyununuzun genel görsel çekiciliğini artırır.

Biraz yaratıcılık ve biraz kodlamayla, yalnızca temel işlevleri sağlayan değil, aynı zamanda oyuncuları büyüleyen ve genel oyun deneyimlerini geliştiren menüler tasarlayabilirsiniz. Öyleyse, Godot oyunlarınızın kalabalığın arasından sıyrılmasını sağlamak için kendi benzersiz menülerinizi keşfetmeye ve oluşturmaya başlayın.