KWEngine, Teil 12: Hintergrundbilder und Texturen verwenden

1)
Einbinden eines 2D-Hintergrundbilds

public class GameWorld : World
{
    private float offsetY = 0f;

    public override void Act(KeyboardState ks, MouseState ms)
    {
        // Jeden Frame wird ein Feld erhöht, was die Verschiebung
        // des Hintergrundbilds beinhaltet. 
        offsetY += 0.01f;

        // Diese Verschiebung (offset) wird dann auf das aktuelle
        // Hintergrundbild angewendet:
        SetTextureBackgroundOffset(0, offsetY);
    }
     
    public override void Prepare()
    {
        // Setzen des Hintergrundbildes mit Skalierung: 100% / 100%
        SetTextureBackground(@".\folder\background.jpg", 1, 1);
    }
}
  • Die entsprechende Bilddatei muss sich innerhalb des Projektverzeichnisses (z.B. in einem separaten Unterordner) befinden.
  • In der Prepare()-Methode wird das Hintergrundbild einmalig gesetzt.
  • Außerdem muss jede Bilddatei in Visual Studio einmalig als „vorhandenes Element“ hinzugefügt werden und anschließend in den VS-Dateieigenschaften (Rechtsklick auf die hinzugefügte Datei) so eingestellt werden, dass die Eigenschaft „In Ausgabeverzeichnis kopieren“ den Wert „kopieren, wenn neuer“ bekommt. Nur dann ist die Textur in der fertigen Anwendung auffindbar (siehe Abbildung unten)
  • Soll das Hintergrundbild jeden Frame ein wenig verschoben werden, wird dies in der Act()-Methode der Welt-Klasse erledigt (siehe Code oben).

2)
Einbinden eines 3D-Hintergrundbilds („skybox cube map“)

public class GameWorld : World
{
    public override void Act(KeyboardState ks, MouseState ms)
    {
        
    }
     
    public override void Prepare()
    {
        // Setzen des 3D-Hintergrundbildes:
        SetTextureSkybox(@".\folder\background.jpg");
    }
}
  • Die entsprechende Bilddatei muss sich innerhalb des Projektverzeichnisses (z.B. in einem separaten Unterordner) befinden.
  • In der Prepare()-Methode wird das Hintergrundbild einmalig gesetzt.
  • Außerdem muss jede Bilddatei in Visual Studio einmalig als „vorhandenes Element“ hinzugefügt werden und anschließend in den VS-Dateieigenschaften (Rechtsklick auf die hinzugefügte Datei) so eingestellt werden, dass die Eigenschaft „In Ausgabeverzeichnis kopieren“ den Wert „kopieren, wenn neuer“ bekommt. Nur dann ist die Textur in der fertigen Anwendung auffindbar (siehe Abbildung unten)
  • Eine Skybox muss als „unified cube map“ vorliegen (siehe folgende Abbildung):

3)
Würfel und Kugeln mit Texturen ausstatten

Wenn Sie für Ihre GameObject-Instanzen die Modelle KWCube oder KWSphere verwenden, können Sie den Objekten Texturen zuweisen.
Gültige Texturformate sind:

  • JPG
  • PNG
  • DDS (mit EXT1, 3 oder 5 Kompression)
public class GameWorld : World
{
    public override void Act(KeyboardState ks, MouseState ms)
    {
        
    }
     
    public override void Prepare()
    {
        Player p1 = new Player();
        p1.SetModel("KWCube");
        p1.SetTexture(@".\folder\myTexture.jpg");
        AddGameObject(p1);
    }
}
  • Die entsprechende Bilddatei muss sich innerhalb des Projektverzeichnisses (z.B. in einem separaten Unterordner) befinden.
  • Außerdem muss jede Bilddatei in Visual Studio einmalig als „vorhandenes Element“ hinzugefügt werden und anschließend in den VS-Dateieigenschaften (Rechtsklick auf die hinzugefügte Datei) so eingestellt werden, dass die Eigenschaft „In Ausgabeverzeichnis kopieren“ den Wert „kopieren, wenn neuer“ bekommt. Nur dann ist die Textur in der fertigen Anwendung auffindbar (siehe Abbildung weiter oben).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.