Kollisionsabfrage
Verfasst: 25.11.2007 02:16
Hallo zusammen,
Ich habe die Zeile markiert die mir Probleme bereitet.
Die Abfrage funz so wie sie hier steht. Aber die Anzahl der Sprites ist natürlich später variabel und nicht fix wie in diesem Beispiel. Ich komm einfach nicht drauf wie ich das anders Abfragen soll.
Bitte Hilfe
Ich habe die Zeile markiert die mir Probleme bereitet.
Die Abfrage funz so wie sie hier steht. Aber die Anzahl der Sprites ist natürlich später variabel und nicht fix wie in diesem Beispiel. Ich komm einfach nicht drauf wie ich das anders Abfragen soll.
Bitte Hilfe

Code: Alles auswählen
InitMouse()
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"")
UsePNGImageDecoder()
UseJPEGImageDecoder()
anzahl = 3
spriteCounter = 0
Dim x(anzahl)
Dim y(anzahl)
Dim test(anzahl)
LoadSprite(10, "sprite1.bmp", 0)
LoadSprite(11, "kugel.png",0)
LoadSprite(12, "Landschaft.jpg",0)
Repeat
ClearScreen(0)
DisplayTransparentSprite(12, 1, 1)
; Sprites anzeigen
For i = 1 To spriteCounter
DisplayTransparentSprite(10, x(i), y(i))
Next i
; Maus anzeigen
ExamineMouse()
mx = MouseX()
my = MouseY()
For a=1 To anzahl
test(a) = SpritePixelCollision(10, mx, my, 10, x(a), y(a))
DisplayTransparentSprite(10, mx, my)
Next a
; Klick überprüfen
If MouseButton(1) And test(1)=0 And test(2)=0 And test(3)=0 <--------------------------------------- Das ist die verflixte Zeile
click = 1
Else
If click = 1
click = 2
EndIf
EndIf
; Sprite setzen
If click = 2
If mx > 300 And mx < 700 And my > 100 And my < 400
spriteCounter +1
x(spriteCounter) = mx
y(spriteCounter) = my
EndIf
If spriteCounter = anzahl
Break
EndIf
click = 0
EndIf
FlipBuffers()
Delay(1)
; ESC überprüfen
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
ForEver