ImagesCollide / Type-Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Eingeproggt

Betreff: ImagesCollide / Type-Problem

BeitragSa, Feb 24, 2007 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
*Jammmer Schluchz Geheul*

Ist ja echt blöd, dass ich euch bei so einer Kleinigkeit um Hilfe bitten muss.
Also in dem folgenden Codeschnipsel kommt immer der Fehler "Object does Not exist" bei der ImagesCollide-Abfrage (die wird vom Debugger markiert).
Ich habe mit dem Debugger auch alle Variablen kontrolliert. Das Problem dürfte schuss sein, denn der ist "Null".
Aber ich hab doch in der Abfrage darüber alle nicht existireenden schüsse herausgefiltert?
Code: [AUSKLAPPEN]

For schuss.schuss=Each schuss
   ;Schuss bewegen
   DrawImage Rakete,schuss\x,schuss\y
   schuss\y=schuss\y-10
   ;Schuss auf Kollision mit Alien überprüfen
   If schuss<>Null Then
      For alien.alien=Each alien
         If ImagesCollide(Gegner1,alien\x,alien\y,0,Rakete,schuss\x,schuss\y,0) Then
            alien\tot=1
            Delete schuss
            Punkte = Punkte + 10
         EndIf
      Next
   EndIf
   If schuss<>Null Then
      If schuss\y<0 Then Delete schuss
   EndIf
Next


Vielleicht bin auch bloss schon zu müde, um den fehler zu finden, hab mich damit ca 1h beschäftigt, ohne Ergebnis. Bin wirklich jedem dankbar, der mir dienliche Hinweise liefert.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Rone

BeitragSa, Feb 24, 2007 3:50
Antworten mit Zitat
Benutzer-Profile anzeigen
mmh...
Code: [AUSKLAPPEN]
For schuss.schuss=Each schuss
   DrawImage Rakete,schuss\x,schuss\y
   schuss\y=schuss\y-10
   If schuss\y>=0 Then
      For alien.alien=Each alien
         If ImagesCollide(Gegner1,alien\x,alien\y,0,Rakete,schuss\x,schuss\y,0) Then
            alien\tot=1
            Delete schuss
            Punkte = Punkte + 10
         EndIf
      Next
   Else
      Delete schuss
   EndIf
Next
...so sollte es gehn.

wenn nicht, kannst du ja mal -->hier<-- schaun.

mfg

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Feb 24, 2007 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfacher geht es mit 2 Schleifen und exit
Code: [AUSKLAPPEN]
For schuss.schuss=Each schuss
   ;Schuss bewegen
   DrawImage Rakete,schuss\x,schuss\y
   schuss\y=schuss\y-10
   If schuss\y<0 Then Delete schuss
Next

For schuss.schuss=Each schuss
  ;Schuss auf Kollision mit Alien überprüfen
    For alien.alien=Each alien
         If ImagesCollide(Gegner1,alien\x,alien\y,0,Rakete,schuss\x,schuss\y,0) Then
            alien\tot=1
            Punkte = Punkte + 10
         Delete schuss
         Exit ;Zum nächsten Schuss
         EndIf
    Next
Next
[BB2D | BB3D | BB+]

Eingeproggt

BeitragSa, Feb 24, 2007 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich könnt schwören, dass ich nichts falsch gemacht hab (wenns nach der Anleitung von Rone geht)
Es funktioniert trotzdem nur Rallimens Variante in meinem Code. Na Hauptsache es geht!

Danke euch beiden!
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group