Auszug aus dem Acknex Handbuch:

Quote:
button(x, y, bmapOn, bmapOff, bmapOver, functionOn, functionOff, functionOver);
button_toggle(x, y, bmapOn, bmapOff, bmapOver, bmapOverOff, functionClick, functionLeave, functionOver);
button_radio(x, y, bmapOn, bmapOff, bmapOver, functionClick, functionLeave, functionOver);

Definiert einen Druck-, Umschalt- oder Radio-Knopf, der durch Anklicken an- oder abgeschaltet werden kann.

Parameter:

x, y Position in Relation zur oberen, linken Ecken des Panels. Der Button muß sich innerhalb des Bereiches des Panels oder der Panel-Hintergrund-Bitmap befinden.
bmapOn Bmap, die angezeigt wird wenn der Knopf angeschaltet ist; liefert ausserdem die Grösse des Knopfes.
bmapOff Bmap, die angezeigt wird wenn der Knopf abgeschaltet ist.
bmapOver Bmap, die angezeigt wird wenn die Maus sich über dem Knopf befindet.
bmapOverOff Bmap, die angezeigt wird wenn die Maus sich über dem abgeschalteten Knopf befindet.
functionClick Funktion, die durch Linksklick mit der Maus über dem Knopf ausgeführt wird.
functionLeave Funktion, die ausgeführt wird wenn die Maus über dem Knopf losgelassen wird oder den Knopf verlässt.
functionOver Funktion, die durch Berühren des Knopfes mit der Maus ausgeführt wird. .

Bemerkungen:

Vorher definierte Funktionen und Bitmaps müssen angegeben werden, nicht initialisierte Pointer genügen nicht.
Knöpfe müssen komplett innerhalb des Panels sein, ausserhalb des Panel-Bereiches reagieren sie nicht auf die Maus. Der Panel-Bereich wird entweder durch die Größe der Panel-Hintergrund-Bitmap definiert oder durch die Parameter size_x/y. Besteht das Panel lediglich aus einem einzigen Knopf und gibt es keine Hintergrund-Bitmap, bestimmt die Knopfgröße die Größe des Panels und daher muß der Knopf an der Position 0,0 platziert werden.
Freiform-Knöpfe können dann verwendet werden, wenn die Button-Funktion per pixel_for_bmap() den Pixel an der Mausposition wiederfindet und zum Bestimmen, ob der Knopf gedrückt wurde oder nicht, die Pixelfarbe oder den Alpha-Wert benutzt.
Ausser bmapOn das die Knopfgrösse festlegt, können sämtliche Bitmaps und Funktionen durch NULL ersetzt werden.
Verschiedene Knöpfe können sich eine gleiche Funktion teilen. Als erster Parameter wird die Nummer des Knopfes an die Funktion übermittelt (1 = erster Knopf), der Panel-Pointer wird als zweiter Parameter übermittelt.
Wird ein Radio-Knopf angeklickt, werden alle übrigen Radio-Knöpfe des Panels abgeschaltet. Beim Anklicken eines Umschalt-Knopfes, ändert sich dessen Status von Aus zu An und umgekehrt.
Knopf-Funktionen können die event_type-Variable vergleichen und so untersuchen, durch welches Mausereignis sie ausgelöst wurden. Zu Beginn einer Funktion kann event_type folgende Werte haben:
EVENT_TOUCH - die Maus wurde über den Knopf bewegt.
EVENT_RELEASE - die Maus wurde vom Knopf weg bewegt.
EVENT_CLICK - über dem Knopf wurde die linke Maustaste gedrückt oder es wird ein Umschaltknopf angeschaltet.
EVENT_CLICKUP - die linke Maustaste wurde über einem Umschaltknopf gedrückt und schaltet ihn aus.
EVENT_BUTTONUP - die linke Maustaste wurde über dem Knopf losgelassen.

Anhand von EVENT_RELEASE und EVENT_BUTTONUP lässt sich unterscheiden ob functionOff durch verlassen des Knopfbereichs oder durch Loslassen der Maustaste ausgelöst wurde. EVENT_CLICK und EVENT_CLICKUP kann man dazu verwenden, zu unterscheiden, ob der Mausklick den Umschaltknopf an- oder ausschaltet.

Beispiel:
var toggletest = 0;


function toggle_var()
{
toggletest = 1 - toggletest; // toggle between 1 and 0
}

PANEL* pTest =
{
button_toggle(0,0,on_map,off_map,off_map,NULL,toggle_var,NULL,NULL);
}
}


Außerdem viel üben und lesen, das Handbuch sollte jetzt dein Freund sein. wink


Regards, Robert

Quote
Everything should be made as simple as possible, but not one bit simpler.
by Albert Einstein

PhysX Preview of Cloth, Fluid and Soft Body

A8.47.1P