Game Engine Math

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 können Instanzen der folgenden Klassen sein:

  • HUDObjectImage oder
  • HUDObjectText

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

Beispiel 1: Text platzieren

public class GameWorld : World
{
    private HUDObjectText _h;
    public override void Act()
    {
        if(_h.IsMouseCursorOnMe() == true)
        {
            _h.SetGlowIntensity(1.5f);   
        }
        else
        {
            _h.SetGlowIntensity(0.0f);
        }
    }

    public override void Prepare()
    {
        // Platziere ein textbasiertes HUD-Objekt:
        _h = new HUDObject("Hello World!");
        _h.SetPosition(64, 32);              // 64 Pixel von links und 
                                             // 32 Pixel von oben auf dem Bildschirm 
        _h.Name = "MyHUDObject";             // Interner Name des Objekts
        _h.SetCharacterDistanceFactor(1.0f); // Abstandsmultiplikator
        _h.SetColorGlow(1, 0, 0);
        
        AddHUDObject(_h);
    }
}

Im obigen Beispiel wird ein HUDObjectText 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 HUDObjectImage _h;
    public override void Act()
    {
        if(_h.IsMouseCursorOnMe() == true)
        {
            _h.SetGlowIntensity(1.5f);   
        }
        else
        {
            _h.SetGlowIntensity(0.0f);
        }
    }

    public override void Prepare()
    {
        // Platziere ein textbasiertes HUD-Objekt:
        _h = new HUDObjectImage(@".\textureFolder\myTexture.jpg");
        _h.SetPosition(64f, 64f); // Position in Pixeln
        _h.Name = "MyHUDObject";  // Interner Name des Objekts
        _h.SetScale(128f, 128f);  // Skalierung des Bildes

        AddHUDObject(_h);
    }
}

Im obigen Beispiel wird ein HUDObjectImage 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.


Beitrag veröffentlicht

in

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.