Nachdem Sie die Unterklasse GameWorld
(erbt von der KWEngine-Klasse World
) erstellt haben, verfügt diese Klasse über zwei Methoden:
public override void Act()
public override void Prepare()
Die erste Methode wird in der Standardkonfiguration in regelmäßigem Abstand automatisch aufgerufen. In dieser Methode können Sie globale Ereignisse programmieren (sich bewegende Wolken, zufällige Spawns von Gegnern, etc.).
Die zweite Methode [Prepare()
] wird nur einmalig beim Laden der Welt aufgerufen. Füllen Sie diese Methode mit Code, der beim Laden der Welt aufgerufen werden soll (Laden von 3D-Modellen, Platzierung der Objekte, die beim Start sichtbar sein sollen, etc.).
Objekte in der Prepare()
-Methode erstellen
Jede Welt-Klasse arbeitet intern mit einer Liste von GameObject
-Instanzen. Zu Beginn der Welt ist diese Liste leer und muss befüllt werden. Da Sie die KWEngine-Klasse GameObject
nicht direkt instanziieren können, müssen Sie also eine Unterklasse der GameObject
-Klasse erstellen (z.B. Player
). Im Beispielprojekt ist dies Bereits im Unterordner „App/Classes“ geschehen:
Player.cs
using KWEngine3; using KWEngine3.GameObjects; using KWEngine3.Helper; using OpenTK.Mathematics; using OpenTK.Windowing.GraphicsLibraryFramework; using System; using System.Collections.Generic; public class Player : GameObject { public override void Act() { } }
GameWorld.cs
(Auszug)
public override void Prepare() { Player p = new Player(); p.Name = "Player 1"; p.SetModel("KWCube"); // KWCube oder KWSphere p.SetPosition(0f, 0f, 0f); p.SetColor(1f, 0f, 1f); // 100% rot, 0% grün, 100% blau AddGameObject(p); }
Wichtig:
Rufen Sie die Methoden Prepare()
und Act()
niemals selbst auf! Überlassen Sie es KWEngine, diese Methoden zu geeignetem Zeitpunkt aufzurufen. Vertrauen Sie der Engine!

Methoden, die allen von GameObject
erbenden Klassen zur Verfügung stehen
Die Liste der Methoden und Eigenschaften einer von GameObject
erbenden Klasse ist zu lang, um sie hier alle aufzulisten. Es folgt eine Auswahl der gängigen Methoden, die für den Anfang benötigt werden.
Im folgenden Beispiel wird ein Player
-Objekt in der Prepare()
-Methode der GameWorld
-Klasse erstellt und konfiguriert.
GameWorld.cs
(Auszug)
public override void Prepare() { Player p = new Player(); p.Name = "Player 1"; p.SetModel("KWCube"); // KWCube für Würfel, KWSphere für Kugel p.SetPosition(0f, 0f, 0f); p.SetScale(2f, 2f, 2f); // Texturmethoden: p.SetTexture("./texturefolder/filename.jpg"); p.SetTextureRepeat(2f, 2f); // Optional kann ein Objekt als Kollisionsobjekt markiert werden: p.IsCollisionObject = true; AddGameObject(p); }
Schreibe einen Kommentar