Was Sie lernen werden#
Sie schreiben ein kleines BASIC-Programm, beobachten, wie der Scene Graph leer bleibt, obwohl es eindeutig funktioniert, und lassen dann jedes Objekt durch Benennen erscheinen. Am Ende wissen Sie, warum der Baum die meisten Dinge verbirgt, die ein Programm erzeugt, und wie Sie auswählen, was er zeigt.
Bevor Sie beginnen#
- Engine ist ein finanziertes Modul. Inkwell, Vectra und PDF Studio sind die drei kostenlosen.
- Kein vorheriges Tutorial nötig. Alles Folgende ist ein einziges Skript.
- Halten Sie das Panel Scene Graph neben dem Viewport geöffnet. Es ist der Kern der Übung.
Schritte#
-
Öffnen Sie Engine, starten Sie eine leere Szene und öffnen Sie den Skript-Editor. Fügen Sie Folgendes ein und drücken Sie Play:
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 -
Schauen Sie sich den Scene Graph an. Das Sprite ist auf dem Bildschirm, das Licht leuchtet, und der Baum zeigt nichts. Das ist kein Fehler, und es ist die ganze Lektion.
Tipp: Das Panel zeigt eine Anzahl unbenannter Objekte an. Diese Zahl ist die Ausgabe Ihres Programms, die der Baum absichtlich nicht aufgelistet hat.
-
Benennen Sie das Sprite. Fügen Sie eine Zeile nach
SpritePositionhinzu und drücken Sie erneut Play:SpriteName(sprite, "player")playererscheint im Baum. Auf dem Bildschirm hat sich sonst nichts verändert: Benennen erzeugt, bewegt oder zeichnet nichts. Es veröffentlicht. -
Benennen Sie auch das Licht, mit dem Befehl, der zu dieser Idee gehört:
LightName(1, "sun")Jetzt gibt es zwei Einträge. Klicken Sie auf einen: Der Inspector folgt, genau wie bei einem Objekt, das Sie von Hand platziert hätten.
-
Fügen Sie Partikel hinzu und benennen Sie sie, damit Sie sehen, dass die Regel nicht nur für Sprites gilt:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "smoke") -
Entfernen Sie jetzt die drei Benennungs-Zeilen und drücken Sie Play. Die Szene ist identisch, der Baum ist wieder leer, und die Anzahl der unbenannten Objekte steht wieder bei drei.
Warnung: Ein Name ist keine ID.
SpriteName(sprite, "player")bezeichnet das Sprite, dessen ID inspritesteht; es erlaubt Ihnen nicht, es später über diese Bezeichnung wiederzufinden. Die ID bleibt Ihr Handle.
Ergebnis#
Sie können entscheiden, was Ihr Programm zeigt. Ein Prop, ein Licht und ein Emitter erscheinen unter den Namen, die Sie gewählt haben; die Hunderte technischer Objekte, die ein echtes Programm erzeugt, bleiben aus dem Weg.
Warum es diese Regel gibt#
Ein klassisches BASIC-Programm erzeugt ständig Objekte: ein Sprite pro Geschoss, einen Text pro Punktestand-Ziffer, ein Bild pro Kachel. Sie alle aufzulisten würde den Scene Graph innerhalb von Sekunden unlesbar machen, und die drei Objekte, die Sie wirklich interessieren, würden im Rauschen untergehen.
Der Baum zeigt also nicht alles und verbirgt den Rest nicht durch Raten. Er zeigt das, was Sie benannt haben, und zählt den Rest, damit nichts stillschweigend verschwindet. Der Filter gehört Ihnen, nicht der Engine.
Welche Objekte benannt werden können#
| Befehl | Was er benennt |
|---|---|
SpriteName(id, name) | Ein Sprite |
TextName(id, name) | Ein Textobjekt |
ObjectName(id, name) | Ein 3D-Objekt |
LightName(id, name) | Ein Punkt- oder Richtungslicht |
ParticlesName(id, name) | Ein Partikel-Emitter, 2D oder 3D |
Sounds, Bilder, Memblocks und Schriftarten haben keine Zeile im Scene Graph: Sie sind Ressourcen, keine Szenenobjekte, und sie zu benennen würde nirgendwo etwas anzeigen.
Wie es weitergeht#
- Der Rest des Dialekts: die BASIC-Sprache.
- Jeder Benennungs-Befehl mit seinen Parametern: die Studio-Familie.