zwei Type-Bilder: Kollisionsabfrage

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

juse4pro

Betreff: zwei Type-Bilder: Kollisionsabfrage

BeitragMo, Feb 19, 2007 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich bin ein ziemlicher Anfänger in Sachen BLITZ-BASIC
hab da mal ne Frage:

Wenn ich zwei Bilder(Schüsse und Gegner) in einer function nach der Kollision abfrage sagt der Debugger mir das ein bestimmtes Objekt nicht exstiert.

habe folgenen Programmcode verwendet:




Type Tshot
Field x,y
Field speed
Field image
End Type

Type Ttarget
Field x,y
Field dir
Field image
End Type

Function update_drone(target.Ttarget,shot.Tshot)
DrawImage target\image,target\x-scroll_x,target\y-scroll_y,target\dir
IfImagesOverlap(shot\image,shot\x-sroll_x,shot\y-scroll_y,target\image,target\x-scroll_x,target\y-scroll_y)
Delete shot
Delete target
EndIf
End Function

Function update_shot(shot.Tshot)
DrawImage shot\image,shot\x-sx,shot\y-sy,shot\dir
If shot\dir=0 Then shot\y=shot\y-shot\speed;player_wea_speed
If shot\dir=1 Then shot\x=shot\x+shot\speed;player_wea_speed
If shot\dir=2 Then shot\x=shot\x-shot\speed;player_wea_speed
If shot\dir=3 Then shot\y=shot\y+shot\speed;player_wea_speed
End Function


While Not Keyhit(1)
For shot.Tshot=Each Tshot
update_shot( shot )
Next
For target.Ttarget=Each Ttarget
update_drone(target,shot)
Next
Flip
Cls
Wend




Kann mir jemand helfen

MFG: mortus
Portfolio |LinkedIn |XING

Tankbuster

BeitragMo, Feb 19, 2007 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls das der ganze Code sein soll:
Ich würde erstmal sagen, dass bei shot nicht angegeben wurde
"Field dir" Very Happy
Twitter
Download Jewel Snake!
Windows|Android

juse4pro

Betreff: ne

BeitragMo, Feb 19, 2007 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist nartürlich nicht der ganze Quelltext...
Portfolio |LinkedIn |XING

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Feb 19, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem liegt in dieser Schleife
Code: [AUSKLAPPEN]
For target.Ttarget=Each Ttarget
update_drone(target,shot)
Next

Mal angenommen die Function Update_drone löscht die beiden Objeckte, dann sind beide = NULL.
Durch die Schleife weist target auf das nächste Objekt,
aber Shot ist immer noch = null und das Programm stürzt ab!

eine schnelle Lösung wäre es wenn du es vorher abfragst!


Code: [AUSKLAPPEN]
For target.Ttarget=Each Ttarget
If shot = null then exit
update_drone(target,shot)
Next
[BB2D | BB3D | BB+]

juse4pro

Betreff: gut

BeitragMo, Feb 19, 2007 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
thx, functionniert jetzt!!!! Shocked Laughing
Portfolio |LinkedIn |XING

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group