Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (PeroPero), 879 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Mehrere Buttons - Problem #353401
01/09/11 21:05
01/09/11 21:05
Joined: Dec 2010
Posts: 66
München (Germany)
dice Offline OP
Junior Member
dice  Offline OP
Junior Member

Joined: Dec 2010
Posts: 66
München (Germany)
Nabend,

ich habe mehrere Buttons definiert, die auch gleichzeitig angezeigt werden sollen. Alle Buttons haben Bitmaps und Funktionen zugeordnet.

Wenn ich das Spiel starte, dann werden die BmapOn Bilder von allen Buttons dargestellt, jedoch nur ein Button reagiert (wechselt das Bild) und auch nur von diesem einen Button reagiert die zugeordnete Funktion. Die anderen Bilder reagieren garnicht, sei es BmapOver Anzeige oder Funktionsaufruf - Fehlanzeige.

In A6 hats funktioniert, hier in A8 gibs immer nur einen aktiven Button. Woran liegts?

Gruß, dice

EDIT:
Gibt es Unterschiede zwischen
set(bmap,VISIBLE);
und
set(bmap,SHOW);
???
Benutze noch ersteres...

Last edited by dice; 01/09/11 21:30.
Re: Mehrere Buttons - Problem [Re: dice] #353406
01/09/11 21:43
01/09/11 21:43
Joined: Jun 2008
Posts: 146
Deutschland
M
M4sterm1nd Offline
Member
M4sterm1nd  Offline
Member
M

Joined: Jun 2008
Posts: 146
Deutschland
na so wird dir keiner helfen können.

Wie hast du denn die buttons definiert?

Code?

Re: Mehrere Buttons - Problem [Re: M4sterm1nd] #353409
01/09/11 21:56
01/09/11 21:56
Joined: Dec 2010
Posts: 66
München (Germany)
dice Offline OP
Junior Member
dice  Offline OP
Junior Member

Joined: Dec 2010
Posts: 66
München (Germany)
Code:
PANEL* panel_zettel_tutorial =
{
	layer = 21;
	button (50, 50, zettel_tutorial_pcx, zettel_tutorial_pcx, zettel_tutorial_over_pcx, starte_tutorial(), NULL, NULL);
	flags = OVERLAY,VISIBLE;
}

PANEL* panel_zettel_missionsmodus =
{
	layer = 21;
	button (250, 170, zettel_missionsmodus_pcx, zettel_missionsmodus_pcx, zettel_missionsmodus_over_pcx, show_hauptmenue_mm(), NULL, NULL);
	flags = OVERLAY,VISIBLE;
}

PANEL* panel_zettel_endlosmodus =
{
	layer = 21;
	button (50, 300, zettel_endlosmodus_pcx, zettel_endlosmodus_pcx, zettel_endlosmodus_over_pcx, show_hauptmenue_em(), NULL, NULL);
	flags = OVERLAY,VISIBLE;
}

PANEL* panel_zettel_speichern =
{
	layer = 21;
	button (300, 440, zettel_speichern_pcx, zettel_speichern_pcx, zettel_speichern_over_pcx, spiel_speichern(), NULL, NULL);
	flags = OVERLAY,VISIBLE;
}


PANEL* panel_zettel_beenden =
{
	layer = 21;
	button (550, 430, zettel_beenden_pcx, zettel_beenden_pcx, zettel_beenden_over_pcx, spiel_beenden(), NULL, NULL);
	flags = overlay,visible;
}



Diese Panels starten alle beim Spielstart. Jedoch reagiert nur der letzte Button "panel_zettel_beenden".

Oh...da machts Klick ;D

...merks grad selber... Lösung:

Code:
PANEL* panel_hauptmenue =
{
	layer = 21;
	button (50, 50, zettel_tutorial_pcx, zettel_tutorial_pcx, zettel_tutorial_over_pcx, NULL, NULL, NULL);
	button (250, 170, zettel_missionsmodus_pcx, zettel_missionsmodus_pcx, zettel_missionsmodus_over_pcx, show_hauptmenue_mm(), NULL, NULL);  //show_hauptmenue_mm()
	button (50, 300, zettel_endlosmodus_pcx, zettel_endlosmodus_pcx, zettel_endlosmodus_over_pcx, NULL, NULL, NULL);
	button (300, 440, zettel_speichern_pcx, zettel_speichern_pcx, zettel_speichern_over_pcx, NULL, NULL, NULL);
	button (550, 430, zettel_beenden_pcx, zettel_beenden_pcx, zettel_beenden_over_pcx, spiel_beenden(), NULL, NULL);
	
	flags = OVERLAY,VISIBLE;
}



Scheinbar muss man alle Buttons, die momentan angezeigt werden, unter einem Panel schreiben, damit sie funktionieren.
In A6 war das egal...

Wieso kommt man darauf auch erst wenn man sowas gepostet hat?^^

Naja..schönen Abend noch!

Re: Mehrere Buttons - Problem [Re: dice] #353414
01/09/11 22:13
01/09/11 22:13
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Die Buttons können durchaus separat in verschiedenen Panels sitzen, nur dürfen diese Panels sich nicht gegenseitig verdecken. Und da alle Deine Panels die gleiche Position hatten, haben sie sich natürlich überlagert, so dass nur eines der Panel "vorne" liegen konnte und sein Button bedienbar war.

Re: Mehrere Buttons - Problem [Re: Pappenheimer] #353419
01/09/11 22:58
01/09/11 22:58
Joined: Oct 2008
Posts: 681
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 681
Germany
Um deinen EDIT noch zu beantworten,...ja gibt einen Unterschied.

SHOW und VISIBLE werden ja bekanntlich fuer Sky und View Entitys
verwendet, dabei wurde VISIBLE fuer Sky und SHOW fuer Views
benutzt.

Angeblich, (laut Jcl) wurde VISIBLE durch SHOW abgeloest.
Nutzen kannst du aber immer noch beides.


Das gleiche gilt auch fuer:
"set(my, PASSABLE);" und "my.flags/2 |= (PASSABLE);"

Nutzen konnte man mal beides fuer jeweils Views und ENTITYS.
Jetzt geht allerdings nur noch
"set(my, PASSABLE);" ->ENTITYS
"my.flags/2 |= (PASSABLE);" ->VIEW/ Partikel...etc

Re: Mehrere Buttons - Problem [Re: Ayumi] #353420
01/09/11 23:19
01/09/11 23:19
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
button (550, 430, zettel_beenden_pcx, zettel_beenden_pcx, zettel_beenden_over_pcx, spiel_beenden(), NULL, NULL);

Du willst einen Funktions-Pointer dem Button zuweisen, aber du schreibst dort nur den Rückgabewert hinein (beachte die Klammern hinter deiner Funktion).
Das heißt also, dass deine Funktion "spiel_beenden" heißt und NICHT "spiel_beenden()", letzteres ist ein Aufruf.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1