Ich erweitere das Framework gerade um eine GUI-Funktion.
Die "Besonderheit": Man kann mit einem Spritesheet festlegen, wie die Buttons etc. aussehen sollen.
Später soll noch eine Möglichkeit hinzugefügt werden, dass man GUI-Designs aus einer XML Datei laden kann.
Die Verwendung ist so einfach wie möglich gehalten:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
BBB::GUI mgui("[Pfad]/MyGUI.gui", // Datei, in der die Regionen der Buttons etc. auf dem Spritesheet gespeichert sind
sf::Vector2i(800,600)); // Bildschirmhoehe und Breite
mgui.AddElem<BBB::Button>("Button1"); // Drei Buttons Erstellen
mgui.AddElem<BBB::Button>("Button2");
mgui.AddElem<BBB::Button>("Button3");
|
Und in der Nachichtenschleife:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
// Process events
sf::Event Event;
while (App.GetEvent(Event))
{
mgui.Update(Event);
// Close window : exit
if (Event.Type == sf::Event::Closed)
App.Close();
}
|
und
|
C-/C++-Quelltext
|
1
|
mgui.Render(&App);
|
Das ganze kann dann noch formattiert werden etc.pp.
Wie weit bin ich?
Ich habe nun die Möglichkeit geschaffen, Buttons zu erstellen und zu rendern, zudem ist der erste Teil des Event-Systems fertig.
Todo:
Weitere Typen von inputs:
- Text-Input
- Checkboxen
- Radioboxen
- Panels
evtl. noch ein paar mehr...
Screenshots im Anhang:
- normales Aussehen eines Testprogramms
- Mouseover-Ansicht
- Mousedown-Ansicht
- Der Spritefile
- Das Programm zum erstellen der Regionsdateien (Borland-Form)
mfg CBenni::O