Periyodik olarak belirip kaybolan platformlar, engelli parkurlar gibi platformlu oyun modlarının başlıca unsurları arasındadır. Oyuncuların bir sonraki platforma geçmek için atlayışlarını zamanlamalarını gerektirir. Platformu kaçıran oyuncu düşer ve baştan başlamak zorunda kalır.
Bu örnekte Scene Graph ve Verse ile yazılmış bir bileşen kullanarak kaybolan bir platformun nasıl oluşturulacağı gösteriliyor. Bunu, Platformu Kaybolma Döngüsüne Sokma bölümünde aynı kavramın Verse ile yazılmış cihazla uygulanışı ile karşılaştır.
Kaybolan Platformlar Oluşturma
Scene Graph kullanarak kaybolan bir platform oluşturmak için aşağıdaki adımları izle:
Sahnene DisappearingPlatform adlı bir varlık ekle. Sahnene varlıklar ve bileşenler ekleme hakkında daha fazla bilgi almak için Varlıklar ve Bileşenler ile Çalışma bölümüne bak.
Kaybolan platform varlığına mesh_component bileşenini ekle ve örgüyü küp olarak ayarla.
Disappear_on_loop_componentadlı yeni bir Verse bileşeni oluştur, bileşeni kaybolan platform varlığına ekle ve varlığı kaydet. Kendi bileşenini nasıl oluşturacağını öğrenmek için Verse Kullanarak Kendi Bileşenini Oluşturma bölümüne bakabilirsin.Disappear_on_loop_componentbileşenini aşağıdaki adımlarda düzenlemek için VS Code ile aç.Bileşene
Durationadlı düzenlenebilir birfloatözelliği ekle. Bu özellik, platformun gizlenmeden önce ne kadar süre gösterilmesi gerektiğini ve tekrar görünmeden önce ne kadar süre gizlendiğini belirler.Verseusing { /Verse.org } using { /Verse.org/Native } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } # Loops between hiding and showing the entity by enabling and disabling # its static mesh and collision components. disappear_on_loop_component := class(component):Bir platformu gizlemek için çarpışma bileşenini kapatarak statik örgüsünü görünmez yapabilir ve böylece oyuncunun platform üzerine iniş yapamamasını sağlayabilirsin.
Disappear_on_loop_componentsınıfınaHide()adlıvarlıktangenişleyen yeni bir fonksiyon ekle. Bu fonksiyonun içinde aradığın türle yani bu örnektemesh_componentile birlikteGetComponents[]çağır. Bu da varlığın statik örgüsünü döndürür. Ardından statik örgü üzerindeDisable()çağrısı yap.Verse# If the entity has a mesh or collision component, disable them. (Entity:entity).Hide():void= if: StaticMesh := Entity.GetComponent[mesh_component] then: StaticMesh.Disable()Disappear_on_loop_componentsınıfınaShow()adlı başka birvarlıkuzantısı fonksiyonu ekle. Bunun uygulamasıHide()ile aynıdır ancak bileşenler üzerinde onun yerineEnable()çağrısı yaparsın.Verse# If the entity has a mesh or collision component, enable them. (Entity:entity).Show():void= if: StaticMesh := Entity.GetComponent[mesh_component] then: StaticMesh.Enable()Son olarak
OnSimulate()içinde, platformu gizleyip gösterme döngüsü için birloopifadesi kullan ve her seferindeSleep()çağrısı yap. Tamamlanmışdisappear_on_loop_componentsınıfın aşağıdaki gibi görünmelidir:Verseusing { /Verse.org } using { /Verse.org/Native } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } # Loops between hiding and showing the entity by enabling and disabling # its static mesh and collision components. disappear_on_loop_component := class<final_super>(component):Kodunu kaydet ve derle.
UEFN Anahat Düzenleyicisi'nde DisappearingPlatform varlığını disappearing_platform_prefab adlı bir prefaba yükselt. Prefab olarak, kaybolan platformunun daha fazla örneğini oluşturabilir, daha sonra ihtiyaç duyarsan görünümü ve temel uygulanışını güncelleyebilirsin. Varlıkları bir prefaba nasıl yükselteceğin hakkında bilgi için Prefablar ve Prefab Örnekleri bölümüne bakabilirsin.
Tam Kod
Bu bölümde kullanılan kodun tamamı şöyledir:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):