Rectsoverlap

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

@ndinho

Betreff: Rectsoverlap

BeitragFr, Apr 01, 2005 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab für mein Menü RectOverlap verwendet, aber ich hab ein Problem:

Wenn ich auf "Spiel starten" klicke, funktioniert es, aber wenn ich auf "Optionen" oder "Spiel beende" klicke, macht er nichts, woran liegt das?

BlitzBasic: [AUSKLAPPEN]

Graphics 600, 480
SetBuffer BackBuffer()


bild = LoadImage(\"hinter.png\")
maus = LoadImage(\"mauszeigergroß.png\")






MaskImage maus, 255,0,255


Repeat
Cls



HidePointer

DrawImage bild,0,0
DrawImage maus, MouseX(), MouseY()


If RectsOverlap(5,5,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then game()

If RectsOverlap(5,50,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then optionen()

If RectsOverlap(5,50,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then End


Flip
Until KeyDown(1)






Function game()
Cls
Print \"Spiel\"
Delay 2000
End Function



Function optionen()
Cls
Print \"Optionen\"
Delay 2000
End Function






User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

Chester

BeitragFr, Apr 01, 2005 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
optionen und beenden sind auf der gleichen position

Rob_

BeitragFr, Apr 01, 2005 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, vielleicht liegt es daran das du alle y, parameter gleich hast Question
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

@ndinho

BeitragFr, Apr 01, 2005 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, das ist x und das ist ja so ein system:

user posted image




also ist x immer gleich
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

@ndinho

BeitragFr, Apr 01, 2005 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
trotzdem geht das nicht

BlitzBasic: [AUSKLAPPEN]

Graphics 600, 480
SetBuffer BackBuffer()


bild = LoadImage(\"panzer2.png\")
maus = LoadImage(\"mauszeigergroß.png\")







MaskImage maus, 255,0,255


Repeat
Cls



HidePointer

DrawImage bild,0,0
DrawImage maus, MouseX(), MouseY()


If RectsOverlap(5,5,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then game()

If RectsOverlap(5,50,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then optionen()

If RectsOverlap(5,100,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then End


Flip
Until KeyDown(1)






Function game()
Cls
Print \"Spiel\"
Delay 2000
End Function



Function optionen()
Cls
Print \"Optionen\"
Delay 2000
End Function
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

wunderkind

BeitragFr, Apr 01, 2005 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
MouseHit()-Wert in einer Variablen speichern und diese beim If-Then-Part benutzen. Das gleiche gilt für die Mauskoordinaten: Speichern und dann die gespeicherten Werte nutzen.

Hubsi

BeitragFr, Apr 01, 2005 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
f RectsOverlap(5,50,250,30,MouseX(),MouseY(),1,1) And MouseHit(1) Then optionen()

If RectsOverlap(5,50,250
zweimal 50 Wink Ausserdem kann ich mir nicht vorstellen das es überhaupt richtig funktioniert wenn Du pro Schleifenfurchlauf mehrere MouseHit() abfragst Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

@ndinho

BeitragFr, Apr 01, 2005 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
jetzt gehts aus das Spiel starten auch nicht

BlitzBasic: [AUSKLAPPEN]
Graphics 600, 480
SetBuffer BackBuffer()


bild = LoadImage(\"panzer2.png\")
maus = LoadImage(\"mauszeigergroß.png\")



mausklick = MouseHit(1)
x = 5
y = 5
y2 = 50
y3 = 100

x2 = 250
y3 = 30



a = MouseX()
b = MouseY()



MaskImage maus, 255,0,255


Repeat
Cls



HidePointer

DrawImage bild,0,0
DrawImage maus, MouseX(), MouseY()


If RectsOverlap(x,y,x2,y3,a,b,1,1) And mausklick Then game()

If RectsOverlap(x,y2,x2,y3,a,b,1,1) And mausklick Then optionen()

If RectsOverlap(x,y3,x2,y3,a,b,1,1) And mausklick Then End


Flip
Until KeyDown(1)






Function game()
Cls
Print \"Spiel\"
Delay 2000
End Function



Function optionen()
Cls
Print \"Optionen\"
Delay 2000
End Function






User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile
 

Gerhard

BeitragFr, Apr 01, 2005 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Du fragst a, b ab, hast die Werte aber ausserhalb deiner Schleife zugewiesen. Deine Maus ist aber bei MouseX() und MouseY().

wunderkind

BeitragFr, Apr 01, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
mausklick = MouseHit(1), a = MouseX() und b = MouseY() gehören in die Repeat-Schleife.

@ndinho

BeitragFr, Apr 01, 2005 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt hab ichs raus, danke
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group