BB: Collisionen werden nicht erkannt (Erledigt)
Übersicht

![]() |
Michi1988Betreff: BB: Collisionen werden nicht erkannt (Erledigt) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tach. Hab ma versucht ne Btn Routine zu code.
Da ich sonst alles mit images mache fände ich es recht Hilfreich es so zu machen. Hab auch auch noch nie besonders damit beschäftigt: Hier der Code: Code: [AUSKLAPPEN] HidePointer() Type Buttont Field x,y,width,height Field img End Type Global btn_weiter=new_btn("weiter",10,10) Global btn_beenden=new_btn("beenden",10,40) Global Maus=CreateImage(10,10,1) SetBuffer ImageBuffer(Maus,0) Color 255,0,0 Line 0,0,10,5 Line 0,0,5,10 Color 255,255,255 SetBuffer BackBuffer() While Not KeyHit(1) For speicher.Buttont=Each Buttont DrawImage speicher\img,speicher\x,speicher\y If ImagesCollide(Maus,MouseX(),MouseY(),0,speicher\img,speicher\x,speicher\y,0) Then x=1:Else:x=0 Next Text 100,10,x DrawImage Maus,MouseX(),MouseY() Flip Cls Wend Function new_btn(txt$,x,y) speicher.Buttont=New buttont speicher\x=x speicher\y=y speicher\img=CreateImage(StringWidth(txt$)+4,StringHeight(txt$)+2,1) SetBuffer ImageBuffer(speicher\img,0) Color 125,125,125 Rect 0,0,StringWidth(txt$+4),StringHeight(txt$)+2 Color 255,255,255 Text 2,1,txt$ End Function Das Problem ist nun das immer nur der zuletzt erstellte abgefracht werden kann.[/code] |
||
- Zuletzt bearbeitet von Michi1988 am Do, Apr 01, 2004 17:22, insgesamt einmal bearbeitet
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es wird schon jeder Button abgefragt. Du siehst es aber nicht, weil du der Variable x immer den Wert des letzten Buttons zuweist.
Mach eher sowas: Code: [AUSKLAPPEN] x=0 for ... each .. if ... x=x+1 |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohhh Mensch ja.
So nen Kleinkind fehler. Danke Aber jetzt brauche ich noch ne vernümpftige abfrage. Villeicht bekomme ihc die ja h9in. MOM EDIT: Code: [AUSKLAPPEN] HidePointer() Type Buttont Field x,y,width,height Field img,pressed,txt$ End Type Global x Global btn_weiter=new_btn("weiter",10,10) Global btn_beenden=new_btn("beenden",10,40) Global Maus=CreateImage(10,10,1) SetBuffer ImageBuffer(Maus,0) Color 255,0,0 Line 0,0,10,5 Line 0,0,5,10 Color 255,255,255 SetBuffer BackBuffer() While Not KeyHit(1) For speicher.Buttont=Each Buttont DrawImage speicher\img,speicher\x,speicher\y Next If MouseHit(1) Then abfrage(MouseX(),MouseY()) Text 100,10,x DrawImage Maus,MouseX(),MouseY() Flip Cls Wend Function new_btn(txt$,x,y) speicher.Buttont=New buttont speicher\x=x speicher\y=y speicher\pressed=0 speicher\txt$=txt$ speicher\img=CreateImage(StringWidth(txt$)+4,StringHeight(txt$)+2,1) SetBuffer ImageBuffer(speicher\img,0) Color 125,125,125 Rect 0,0,StringWidth(txt$+4),StringHeight(txt$)+2 Color 255,255,255 Text 2,1,txt$ End Function Function abfrage(mx,my) For speicher.buttont=Each buttont If ImagesCollide(Maus,MX,MY,0,speicher\img,speicher\x,speicher\y,0) Then If speicher\txt$="weiter" Then x=x+1 If speicher\txt$="beenden" Then End End If Next End Function Aber warum muss ich x globalisieren und kann es nich einfach wie mousex() und mousey() in die funktion mit einbringen? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group