1 registered members (AndrewAMD),
1,493
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Läuft nicht...
#307016
01/26/10 16:05
01/26/10 16:05
|
Joined: Apr 2009
Posts: 274
atari98
OP
Member
|
OP
Member
Joined: Apr 2009
Posts: 274
|
Ich kann die Button nicht anklicken, ausser den letzten(Beenden)
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
function quit_program()
{
while (key_any) { wait (1); }
sys_exit(NULL);
}
PANEL* Neu=
{
button(30,100, "Newgame2.jpg","Newgame1.jpg", "Newgame1.jpg", NULL , NULL, NULL);
flags = SHOW;
}
PANEL* Load =
{
button(60,175, "Load2.jpg","Load1.jpg", "Load1.jpg", NULL , NULL, NULL);
flags = SHOW;
}
PANEL* Option =
{
button(90,250, "options2.jpg","options1.jpg", "options1.jpg", NULL , NULL, NULL);
flags = SHOW;
}
PANEL* Mitwirkende =
{
button(120,325, "Credits2.jpg","Credits1.jpg", "Credits1.jpg", NULL , NULL, NULL);
flags = SHOW;
}
PANEL* Beenden =
{
button(150,400, "exit2.jpg","exit1.jpg", "exit1.jpg", quit_program , NULL, NULL);
flags = SHOW;
}
PANEL* Main =
{
pos_x = 400;
pos_y = 130;
bmap = "Main1.jpg";
flags = SHOW;
}
function main()
{
mouse_mode = 2;
while (1)
{
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
wait (1);
}
}
|
|
|
Re: Läuft nicht...
[Re: atari98]
#307164
01/27/10 15:22
01/27/10 15:22
|
Joined: Jun 2008
Posts: 146 Deutschland
M4sterm1nd
Member
|
Member
Joined: Jun 2008
Posts: 146
Deutschland
|
weil du in dieser button definition button(150,400, "exit2.jpg","exit1.jpg", "exit1.jpg", quit_program , NULL, NULL);
die funktion quit_program als event übergeben hast
Last edited by M4sterm1nd; 01/27/10 15:23.
|
|
|
Re: Läuft nicht...
[Re: atari98]
#307168
01/27/10 15:26
01/27/10 15:26
|
Joined: Jun 2008
Posts: 146 Deutschland
M4sterm1nd
Member
|
Member
Joined: Jun 2008
Posts: 146
Deutschland
|
Du musst funktionen schreiben die aufgerufen werden sollen wenn man den button anklickt und schreibst dann den namen der funktion bei den jeweiligen buttons rein wie schon bei dem beenden button quit_program drin steht ist doch ganz easy
warum benutzt du eigentlich 6 panels für 6 buttons kannst doch alle buttons in ein panel tun oder geht das aus gestalterischen gründen nicht
Last edited by M4sterm1nd; 01/27/10 15:28.
|
|
|
Re: Läuft nicht...
[Re: atari98]
#307170
01/27/10 15:43
01/27/10 15:43
|
Joined: Oct 2004
Posts: 900 Lgh
rojart
User
|
User
Joined: Oct 2004
Posts: 900
Lgh
|
Auszug aus dem Acknex Handbuch: 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.
|
|
|
|