Seite 1 von 1

Gadgets auf einem Screen

Verfasst: 02.03.2006 21:27
von Wespe23
Ich habe folgendes Problem: ich will Gadgets auf einen Screen zeichnen, aber das unten angeführte Beispiel funktioniert nicht...

Code: Alles auswählen

OpenScreen(640,480,24,"Beispiel")
If CreateGadgetList(WindowId())
ButtonGadget(0,200,200,70,70,"Klick mich...")
Delay(5000)
Endif
CloseScreen()
End
Der Sinn des ganzen auf-und-abs ist dass ich einen Button auf [Position X = 200 , Y = 200 , Breite = 70 , Höhe = 70 , Aufschrift = Klick mich] auf einen Screen machen will.

Verfasst: 02.03.2006 21:59
von Kaeru Gaman
ein screen ist kein window, deswegen kann der auch keine gadgets enthalten....

du musst dir deine buttons selber basteln.

d.h. du brauchst mindestens 1 sprite für den button (eher nochn zweiten für 'gedrückt')
also, eben ne bmp malen in 70x70 wo "klick mich" drauf steht,
und die mit displaysprite bei 200,200 anzeigen...
dann musst du die maus abfragen und den mauspointer setzen...
und dann halt den mausbutton abfragen, die koordinaten checken,
und wenn der zeiger überm button ist, nen click ausführen.

Verfasst: 02.03.2006 22:18
von Macros
In PBOSL gibt es eine ScreenGadget-lib, ich hoffe das ist was du suchst.

Verfasst: 02.03.2006 22:21
von ts-soft
@Macros
Die wird auf seinem System wohl nicht gehen:
signatur hat geschrieben:PureBasic 3.49 x86 DEMO
jaPBe mit kaputtem Compiler

Verfasst: 03.03.2006 16:31
von Wespe23
Sorry, ich meinte

Code: Alles auswählen

OpenScreen(640,480,24,"Beispiel") 
If CreateGadgetList(ScreenId()) 
ButtonGadget(0,200,200,70,70,"Klick mich...") 
Delay(5000) 
Endif 
CloseScreen() 
End 
@Kaeru
Dann muss ich ja tausendmal abfragen.

Code: Alles auswählen

If MouseX() And MouseY() .....
oder ähnlich. Noch dazu:Wie kann man feststellen, ob ein 'Sprite' gedrückt worden ist... :roll:

Verfasst: 04.03.2006 00:55
von Kaeru Gaman
das X/Y kannst du vereinfachen, indem du kollision zwischen mauszeiger und button abfragst.
bei einer button-reihe ist aber die koordinatenmethode oft einfacher.

das sprite selber ist nicht gedrückt, das musst du komplett selbst coden.

wenn der button gedrückt ist und der zeiger auf dem sprite, dann setzt du ein flag, z.b. Button1=1, das fragst du später ab.

im screen hast du grundsätzlich keine windows-elemente, auch keine events.

umgekehrt hast du ne menge andere vorteile.
versuch doch mal, ne tilemap mit images aufn window zu packen,
da schreibst du dirn wolf und es is saulahm.