Neler öğreneceksiniz#
Küçük bir BASIC programı yazacak, programın açıkça çalışırken Scene Graph'ın boş kalmasını izleyecek ve ardından her nesneyi adlandırarak görünür hale getireceksiniz. Sonunda ağacın bir programın oluşturduğu şeylerin çoğunu neden gizlediğini ve neyi göstereceğinizi nasıl seçeceğinizi bileceksiniz.
Başlamadan önce#
- Engine, desteklenen bir modüldür. Inkwell, Vectra ve PDF Studio, ücretsiz olan üç tanesidir.
- Önceden bir eğitime gerek yok. Aşağıdakilerin tümü tek bir betiktir.
- Scene Graph panelini görüntü alanının yanında açık tutun. Alıştırmanın bütün amacı budur.
Adımlar#
-
Engine'i açın, boş bir sahne başlatın ve betik düzenleyicisini açın. Şunu yapıştırın ve Play'e basın:
image = LoadImage("hero.png") sprite = CreateSprite(image) SpritePosition(sprite, 100.0, 120.0) CreatePointLight(1, 0.0, 5.0, 0.0, 10.0, 255, 255, 255) DO Sync() LOOP -
Scene Graph'a bakın. Sprite ekranda, ışık yanıyor ve ağaç hiçbir şey göstermiyor. Bu bir hata değildir ve dersin tamamı da budur.
İpucu: panel, adlandırılmamış nesnelerin sayısını gösterir. Bu sayı, ağacın bilerek listelemediği programınızın çıktısıdır.
-
Sprite'ı adlandırın.
SpritePosition'dan sonra bir satır ekleyin ve tekrar Play'e basın:SpriteName(sprite, "player")player, ağaçta görünür. Ekranda başka hiçbir şey değişmedi: adlandırma hiçbir şey oluşturmaz, taşımaz veya çizmez. Yalnızca yayınlar. -
Işığı da, bu fikirle birlikte gelen komutla adlandırın:
LightName(1, "sun")Artık iki giriş var. Birine tıklayın: inspector, tıpkı elle yerleştirdiğiniz bir nesnede olacağı gibi onu takip eder.
-
Parçacıklar ekleyin ve onları adlandırın, böylece kuralın yalnızca sprite'larla ilgili olmadığını görebilirsiniz:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "smoke") -
Şimdi üç adlandırma satırını kaldırın ve Play'e basın. Sahne aynıdır, ağaç yine boştur ve adlandırılmamış sayısı tekrar üçe döner.
Uyarı: bir isim, bir id değildir.
SpriteName(sprite, "player"), id'sispriteiçinde olan sprite'ı etiketler; bu, onu daha sonra o etiketle bulmanızı sağlamaz. Kalıcı tutamağınız id olmaya devam eder.
Sonuç#
Programınızın neyi göstereceğine siz karar verirsiniz. Bir prop, bir ışık ve bir yayıcı seçtiğiniz isimler altında görünür; gerçek bir programın oluşturduğu yüzlerce teknik nesne ise yoldan çekilmiş kalır.
Bu kural neden var#
Klasik bir BASIC programı sürekli nesne oluşturur: her mermi için bir sprite, her skor hanesi için bir metin, her karo için bir görüntü. Bunların tümünü listelemek Scene Graph'ı saniyeler içinde okunamaz hale getirirdi ve gerçekten önemsediğiniz üç nesne gürültünün içinde kaybolurdu.
Bu yüzden ağaç, her şeyi göstermez ve geri kalanını tahmin ederek gizlemez. Adlandırdığınız şeyi gösterir ve hiçbir şey sessizce kaybolmasın diye geri kalanını sayar. Filtre sizindir, motorun değil.
Hangi nesneler adlandırılabilir#
| Komut | Neyi adlandırır |
|---|---|
SpriteName(id, name) | Bir sprite |
TextName(id, name) | Bir metin nesnesi |
ObjectName(id, name) | Bir 3D nesne |
LightName(id, name) | Bir nokta veya yönlü ışık |
ParticlesName(id, name) | Bir parçacık yayıcı, 2D veya 3D |
Seslerin, görüntülerin, memblock'ların ve fontların Scene Graph'ta bir satırı yoktur: bunlar sahne nesnesi değil, kaynaktır ve onları adlandırmak hiçbir yerde hiçbir şey göstermez.
Daha ileri gidin#
- Lehçenin geri kalanı: BASIC dili.
- Parametreleriyle birlikte her adlandırma komutu: Studio ailesi.