KWEngine, Teil 13: HUD-Objekte hinzufügen

Im Gegensatz zu GameObject-Instanzen werden HUD-Objekte in 2D platziert, so dass sie sich an den tatsächlichen Pixelkoordinaten des Monitors orientieren.
HUD-Objekte haben einen von zwei HUDObjectType:

  • HUDObjectType.Image oder
  • HUDObjectType.Text

Sie werden idealerweise in den Prepare()-Methoden Ihrer World-Klassen hinzugefügt.

Beispiel 1: Text platzieren

public class GameWorld : World
{
    private HUDObject _h;
    public override void Act(KeyboardState ks, MouseState ms)
    {
        if(_h.IsMouseCursorOnMe(ms) == true)
        {
            _h.SetGlow(1, 0, 0, 1);   
        }
        else
        {
            _h.SetGlow(0, 0, 0, 0);
        }
    }

    public override void Prepare()
    {
        // Platziere ein textbasiertes HUD-Objekt 
        // 64 Pixel von links und 32 Pixel von oben auf dem Bildschirm:
        _h = new HUDObject(HUDObjectType.Text, 64, 32);

        _h.Name = "MyHUDObject";       // Interner Name des Objekts
        _h.SetText("Hello World!");    // Text, der angezeigt werden soll
        _h.CharacterSpreadFactor = 26; // Abstand zwischen Buchstaben (in Pixeln)

        AddHUDObject(_h);
    }
}

Im obigen Beispiel wird ein HUDObject im Feld _h angelegt und mit einem anzuzeigenden Text belegt.
Anschließend wird es der aktuellen World hinzugefügt.

In der Act()-Methode wird dann für das Feld _h geprüft, ob sich der Mauszeiger gerade über dem Objekt befindet. Wenn ja, fängt das Objekt an zu glühen.

Beispiel 2: Ein Bild platzieren

public class GameWorld : World
{
    private HUDObject _h;
    public override void Act(KeyboardState ks, MouseState ms)
    {
        if(_h.IsMouseCursorOnMe(ms) == true)
        {
            _h.SetGlow(1, 0, 0, 1);   
        }
        else
        {
            _h.SetGlow(0, 0, 0, 0);
        }
    }

    public override void Prepare()
    {
        // Platziere ein textbasiertes HUD-Objekt 
        // 64 Pixel von links und 32 Pixel von oben auf dem Bildschirm:
        _h = new HUDObject(HUDObjectType.Image, 64, 32);

        _h.Name = "MyHUDObject";                         // Interner Name des Objekts
        _h.SetTexture(@".\textureFolder\myTexture.jpg"); // Anzuzeigendes Bild

        AddHUDObject(_h);
    }
}

Im obigen Beispiel wird ein HUDObject im Feld _h angelegt und mit einem anzuzeigenden Bild belegt. Die Bilddatei muss in Visual Studio so konfiguriert sein, dass sie in das Ausgabeverzeichnis kopiert wird.
Anschließend wird es der aktuellen World hinzugefügt.

In der Act()-Methode wird dann für das Feld _h geprüft, ob sich der Mauszeiger gerade über dem Objekt befindet. Wenn ja, fängt das Objekt an zu glühen.

Schreibe einen Kommentar

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