chaos.button - Buttons einfach benutzen - UPDATE - 0017

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

Mr.Hyde

Newsposter

Betreff: chaos.button - Buttons einfach benutzen - UPDATE - 0017

BeitragDo, Jan 15, 2009 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieses Modul ist in erster (und quasi einziger) Linie dazu gedacht unkompliziert Buttons für beispielsweise ein Menü oder die ingame Oberfläche zu erstellen. Dies ist bei den wichtigsten Befehlen sowohl mit normalen Befehlen, als auch Objektorientiert möglich. So dürften auch Anfänger Freude mit diesem Modul haben. Die jeweils aktuelle Version gibt es auf dem Portal SVN Server im Scope chaos.mod inklusive Beispielcode.

Um das ganze etwas zu verdeutlichen:
user posted image
Bildbeschreibung: "Neues Spiel" ist deaktiviert, zwar noch sichtbar aber nicht mehr zu benutzen, "Neues Zeug" ist im normalen Zustand und "Raus hier" ist gerade ausgewählt und würde bei einem Klick die gewünschte Aktion ausführen.

Es können Grafiken geladen werden und einem bestimmten Button zugewiesen werden, ebenso Fonts. In der Hauptschleife ist nur ein Befehl nötig um sie zu aktualisieren. Der Status eines Buttons kann jederzeit abgefragt werden, indem man ihn direkt per festgelegtem "Command":String anspricht. So dürfte auch bei mehren Buttons nicht so schnell die Übersicht verloren gehen wie bei IDs.
Ein weiteres erwähnenswertes Feature wäre noch, dass der jeweilige Button bei einem Mouseover "aufleuchtet".
Das ganze ist noch im Alpha Stadium aber ich wollte es euch nicht vorenthalten. Bugs, Fehler oder Wünsche dürfen gerne geäußert werden. Aber bevor ich gefragt werde, ob ich es zur GUI ausbaue, ganz klar nein. Es geht darum Buttons einfach bedien- und benutzbar zu halten. GUIs gibt es schon genug, da braucht es keine weitere offizielle von mir.
EDIT 07.02.2009: Es tut sich doch noch was.
Update 0017 von d-bug sorgt dafür, dass nun nicht nur Standardfonts/normale Images geladen werden können sondern nun die Möglichkeit besteht ein Object zu übergeben. So wird jetzt auch chaos.bmpfont unterstützt. Außerdem muss nun nicht unbedingt ein Imagepfad übergeben werden, es kann auch eine Pixmap oder ein bereits geladenes Image sein. Großer Dank an d-bug.
Mit 0016 von hamZta ist es möglich Buttoninformationen extern zu speichern und mit ReadFromFile() einzulesen, durchaus von Vorteil, wenn man nicht alles hardcoded im Source haben möchte. Vielen Dank hamZta!

EDIT 01.02.2009: Inzwischen ist Version 0015 verfügbar und ein bisschen Feintuning dürfte dem Modul nicht geschadet haben. An dieser Stelle noch mal großen Dank an BladeRunner, der mich mit Bugmeldungen und Featurerequests unterstützt. Was hat sich noch geändert? Zum einen habe ich die Zeichenfunktionen aus der Update-Methode entfernt und in eine eigene Methode Draw() ausgelagert. Damit kam natürlich automatisch die Funktion DrawAll() hinzu. Nur für die Prozeduralen Nutzer hat sich hier nicht viel geändert, UpdateButtons() ruft auch Draw() mit auf.
Fataler Weise führte ein negativer Scale Wert zum Absturz, dieses Problem ist nun behoben, außerdem wurde die Handhabung von gespiegelten Buttons verbessert, sie funktionieren nun wie normale, man muss nicht länger beachten, dass sich der Bezugspunkt des Bildes verschiebt.
Zusätzlich gab es noch kleinere Fixes und die Beispieldateien wurden angepasst.

EDIT 22.01.2009: Es gibt nun Version 0011 und diese wird, wenn nicht überraschenderweise noch Feature Requests kommen, auch zur Beta übergehen. Gerade beim Aufrufen der Buttons habe icih noch einiges verbessert, es ist jetzt möglich Buttons nur ungefähr anzusprechen und somit die Auswirkungen auf alle passenden Buttons gelten lassen. Beispiel: Die Buttons mit den Commands "new_game", "load_game", "exit_game" und "exit_app" wurden erstellt. Weiterhin lässt sich natürlich jeder Button über seinen Command ansprechen. Neu ist, dass beispielsweise als Zugriffskeyword "*game" benutzt werden könnte. Nun würden die Auswirkungen des Befehls die Buttons "new_game", "load_game" und "exit_game" betreffen, da diese sämtliche Keywords enthalten, nach denen gesucht wird. Würde man nach "exit*game" suchen käme nur ein Button ("exit_game") als Ergebnis zurück, auch wenn man nach 2 Keywords gesucht hat, statt des korrekten Commands. Die Bedingungen müssen also alle erfüllt sein. Sollte der Wunsch nach OR Verknüpfung noch auftauchen wäre ich bereit das ebenfalls einzubauen.
An dieser Stelle ein herzliches Dankeschön an BladeRunner, der mich nicht nur beraten sondern auch tatkräftig unterstüzt hat!

EDIT 16.01.2009: Inzwischen hat sich einiges getan und ich bin bei Version 0008 angelangt. Hier eine kurze Zusammenfassung dessen, was sich getan hat:
0008 - Funktionen Hide, Show, HideAll, ShowAll sowie Disable/Enable ergänzt. Globale, gewrappte Funktionen in extra Datei ausgelagert
0008 - Fonts müssen nicht mehr zwingender Weise geladen werden. Bug entfernt. Dank an BladeRunner
0007 - Funktion getCommand (getButtonCommand) hinzugefügt, liefert den Command des Buttons mit dem angeforderten Status
0006 - Vergessene Funktion RepositionButton ergänzt

RELATED SVN: https://svn.blitzforum.de/chaos.mod/button.mod/
Aus Aktualitätsgründen habe ich den Archivdownload gelöscht und durch die SVN Verlinkung ersetzt. Ich bitte um Verständnis. Wenn das Modul sämtliche Testphasen überstanden hat, wird es auch wieder einen Paketdownload geben. MfG Hyde

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group