Bu derste Instancing’in ne olduğunu öğreneceğiz. Instance’ın Türkçe çevirisi örnek demektir. Bir sahneyi instance lamak yani örneklemek o sahnenin aynısından oluşturmak demektir. Bir sahneyi bir binayı inşa etmek için kullanılan taslak veya proje planı olarak düşünürseniz instance o taslak kullanılarak inşa edilen bina olur. Aynı taslağı kullanarak istediğiniz kadar bina inşa edebilirsiniz. Aynı şekilde bir sahneyi kullanarak istediğiniz kadar instance oluşturabilirsiniz.

Projeniz için tek bir sahne kullanmak küçük projeler için yeterli olabilir fakat projenin boyutu büyüdükçe kullandığınız node sayısının kısa sürede ele avuca sığmaz hale geldiğini göreceksiniz. Bu problemi çözmek için Godot projelerinizi birden fazla sahnelere ayırmanıza olanak sağlıyor. Bu sayede oyunumuzu farklı bölümlere ayırıp organize edebiliyoruz.

Bir önceki dersimizde sahnelerin ağaç şeklinde düzenlenmiş olan nodelardan oluştuğunu öğrenmiştik.

İstediğimiz kadar sahne oluşturup kaydedebiliriz. Bu şekilde kaydedilen sahnelere “Packed Scene” diyoruz. Packed Scene’ler .tscn dosya uzantısını kullanıyor.

Sahnelerin içine node ekleyebildiğimizi öğrenmiştik. Aynı şekilde kaydedilmiş bir sahneyi başka bir sahnenin içine instance edebiliriz.

Yukarıda resimde Scene B’nin Scene A’nın içine instance edildiğini görüyoruz.

Örnek

Örnek bir proje üzerinden sahneleri nasıl instance edeceğimizi öğreneceğiz, linke tıklayıp projeyi indirin: InstancingOrnek.zip

Dosyayı istediğiniz yere çıkardıktan sonra Godot’u açın ve Import butonuna tıklayın.

Açılan pencerede browse’a tıklayın ve çıkarttığınız klasörün içine gelin. Sonra “project.godot” dosyasını seçip Open‘a tıklayın.

Son olarak Import & Edit diyoruz ve projemiz açılıyor.

Açtığımız projenin içinde iki sahne bulunuyor: “Ana.tscn” ve “Top.tscn”. Top sahnesi fizik özellikleri taşıyan RigidBody2D adlı node’u kullanıyor. RigidBody2D sayesinde topumuzun bir kütlesi var ve yerçekiminden etkileniyor.

Ana sahnemiz ise topumuzun etkileşime girmesi için hazırladığımız duvarlardan oluşuyor. Bu duvarlar StaticBody2D adlı node’u kullanıyor. StaticBody2D ile hareket etmeyeceğini bildiğimiz cisimleri oluşturuyoruz.

Ana sahneyi açın ve kök node’u seçin.

Top sahnesini instance edip Ana node’un çocuğu olarak eklemek istiyoruz. Node ekleme butonunun yanındaki zincire benzeyen butona tıklayın ve Top.tscn dosyasını seçin. Bu buton aracılığıyla bir sahne seçip seçili olan node’un çocuğu olarak instance edebiliyoruz.

Top duvarların sol üstünde belirecektir. Burası ekran kordinatlarında (0, 0) lokasyonu. Topa tıklayın ve topu duvarların üstünde bir yere sürükleyin.

“Play” butonuna basın ve topun nasıl hareket ettiğini izleyin.

Sahnenize istediğiniz kadar instance ekliyebilirsiniz. Ctrl + D kısayolu ile sahne sekmesinde seçili olan instance veya node’un kopyasını oluşturabilirsiniz. Oluşturduğunuz kopyaları sürükleyerek başka yerlere yerleştirin.

Şimdi File System’dan Top sahnesini açalım.

Ve Inspectordan gravity scale özelliğini 100 yapalım ve play butonuna basalım. Gravity scale topa uygulanan yer çekimini belirliyor.

Göreceğiniz gibi bütün toplara daha yüksek bir yer çekimi uygulandı. Top sahnesine yapacağınız değişiklikler bütün instanceları etkileyecektir.

Fakat paylaşılan bir resource kullanmadığınız sürece instancelara yaptığınız değişiklikler diğer instanceları etkilemeyecektir.

Dikkat ettiyseniz değiştirdiğimiz özelliklerin yanında gri bir yuvarlağımsı ok işareti çıkıyor. Bu işaret bir sahnenin orijinal değerlerini değiştirdiğimizde beliriyor ve buna tıklandığında sahnede seçilen orijinal değer geri döner.

Instancing aynı sahneden defalarca yararlanmamıza olanak veriyor. Aynı zamanda bir sonraki konumuz olan scriptleri kullanarak da sahneleri instance edebiliyoruz. 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>