Irgendwie komisch, Overlap nur einmal anwendbar?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Schranz0r

Betreff: Irgendwie komisch, Overlap nur einmal anwendbar?

BeitragSa, Aug 05, 2006 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute, ich hab da ein problem:

Ich hab ein Menu wo ich diverse sachen per mausklick einstellen lassen will.
Hab ein eigenen Mousepointer drin, und menubuttons.

So hab ich das nun geschrieben:

Code: [AUSKLAPPEN]


     If ImagesOverlap(plus,plusX,plusY,maus,mX,mY) And MouseHit(1) Then
        geld = geld + 100
     EndIf


aber sobald ich einen zweiten button so belege, funzt nur noch einer Shocked
da gibts doch bestimmt noch ne andere möglichkeit, oder?

dav3d

BeitragSa, Aug 05, 2006 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke das Problem liegt nicht an imagesoverlap, sondern an mousehit(). Mousehit() kann nur einmal pro Schleifendurchlauf abgefragt werden.
 

D²O

Betreff: Re: Irgendwie komisch, Overlap nur einmal anwendbar?

BeitragSa, Aug 05, 2006 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Schranz0r hat Folgendes geschrieben:
Code: [AUSKLAPPEN]


     If ImagesOverlap(plus,plusX,plusY,maus,mX,mY) And MouseHit(1) Then
        geld = geld + 100
     EndIf




Probiers mal so,

einmal ind der Hauptschleife Mousehit einer Variable zuweisen.

mouse = mousehit(1)

und dann bei der abfrage "mouse" verwenden.
If ImagesOverlap(plus,plusX,plusY,maus,mX,mY) And mouse Then
geld = geld + 100
EndIf
Wink

hier mal ein beispielcode mit rectsoverlap:
Code: [AUSKLAPPEN]

Graphics 640,480,16,1
SetBuffer BackBuffer ()


While Not KeyHit(1)

mouse = MouseHit(1)
x = MouseX()
y = MouseY()

     If  RectsOverlap(20,20,50,50,x,y, 2,2) And Mouse
       ClsColor 20,20,20     
     EndIf

    If  RectsOverlap(20,100,50,50,x,y, 2,2) And Mouse
       ClsColor 20,200,20     
     EndIf

    If  RectsOverlap(20,180,50,50,x,y, 2,2) And Mouse
       ClsColor 0,0,0     
     EndIf

   
Color 255,0,0
Rect  20,20,50,50

Color 255,100,0
Rect  20,100,50,50

Color 255,180,100
Rect  20,180,50,50

Color 255,255,255
Oval MouseX(),MouseY(), 2,2


Flip
Cls
Wend
End
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Schranz0r

BeitragSa, Aug 05, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@ dav3d

Danke für deine Information das es nur 1 mal pro schleife aufrufbar ist, hab ich nicht gewusst Shocked

@ D²O

Dank dir für den Tip, funzt einwandfrei !! Very Happy

garret

BeitragSo, Aug 06, 2006 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Und statt überall ein "And Mouse" anzuhängen, könnte man einfach alles mit MouseHit() umklammern, wodurch man sich die Variable sparen könnte.

Code: [AUSKLAPPEN]

If MouseHit(1)
  If ImagesOverlap()
  If ImagesOverlap()
EndIf


MfG garret

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group