Fehler bei Imagescollide
Übersicht

![]() |
TravisBetreff: Fehler bei Imagescollide |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin zur Zeit an einem Asteroids-Clone am arbeiten und habe nun ein merkwürdiges Problem mit dem ImagesCollide-Befehl. Es gibt zwei verschiedene Sorten von Asteroiden (groß und klein). Für jeden Asteroiden gibt es für jeden Winkel ein Bild.
Code: [AUSKLAPPEN] For Winkel = 0 To 359 Asteroid(Winkel) = LoadImage ("Gfx\Ast1gr.bmp") MaskImage Asteroid(Winkel), 0, 0, 0 RotateImage Asteroid(Winkel), Winkel MidHandle Asteroid(Winkel) Asteroid2(Winkel) = LoadImage ("Gfx\Ast2kl.bmp") MaskImage Asteroid2(Winkel), 0, 0, 0 RotateImage Asteroid2(Winkel), Winkel MidHandle Asteroid2(Winkel) Next Wenn ich jetzt ein Schuß einen Asteroiden trifft wird die Bedingung auch erfüllt und der Asteroid explodiert. Ich habe aber nur eine Kollisionsabfrage für einen AsteroidenTyp Code: [AUSKLAPPEN] If ImagesCollide(Asteroid(a\Winkel), a\x, a\y, 0, Schuss(f\Winkel), f\x, f\y, 0) Then Und trotzdem wird diese Bedingung auch für die anderen Asteroiden "Asteroid2(a\Winkel)" erfüllt. Das darf eigentlich nicht sein. Ich möchte nämlich für jeden Asteroidentyp eine eigene Explosion haben (wegen der Größe). |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Valio |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du scheinst deine Asteroiden in Types gespeichert zu haben. In diesen Types muss es doch auch ein Feld geben ob es sich um einen grossen oder einen kleinen Asteroiden handelt. Z.B.:Code: [AUSKLAPPEN] Type TAsteroid
Field Winkel Field Size ;0 = klein, 1= Gross Field x,y End Type Dann musst du für jeden Asteroid eine gesonderte Abfrage machen:Code: [AUSKLAPPEN] For a.TAsteroid = Each TAsteroid
If a\Size = 0 If ImagesCollide(Asteroid(a\Winkel), a\x, a\y, 0, Schuss(f\Winkel), f\x, f\y, 0) Then Explosion_klein() Else If ImagesCollide(Asteroid2(a\Winkel), a\x, a\y, 0, Schuss(f\Winkel), f\x, f\y, 0) Then Explosion_gross() EndIf Next |
||
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook
Gegen TCPA || Stoppt RFID || Tux user #361946 || User posted image |
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für den Tipp. Das hat geholfen! ![]() Ist aber trotzdem 'ne komische Sache. Immerhin sind Asteroid(n) und Asteroid2(n) ja zwei völlig unterschiedliche Bilder! |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Valio |
![]() Antworten mit Zitat ![]() |
---|---|---|
joa, schon. Aber das weiss BB ja nicht. Du zeichnest unterschiedliche Bilder, machst aber für alle Asteroiden die gleiche Kollisionsabfrage. Und da gibt's halt ein paar Überschneidungen... | ||
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook
Gegen TCPA || Stoppt RFID || Tux user #361946 || User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group