[Erledigt!] Object doesn´t exist! Problem
Übersicht

HendyBetreff: [Erledigt!] Object doesn´t exist! Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo liebe Gemeinschaft,
ich habe folgendes Problem, das ich auch nach mehreren durchgängen des Codes nicht lösen konnte. Ein Code erklärt alles: Code: [AUSKLAPPEN] [quote]Graphics 1024, 768
SetBuffer BackBuffer() Type Inf Field xpos Field ypos Field leben Field speed End Type Type schuss Field x_Pos Field y_Pos Field winkel# End Type Global s.schuss Global a.Inf Global trigger = 0 ;------------------------------------------------------------Hauptschleife------------------------------------------------------------------ Repeat Cls gegner() schuss() Turm() Flip Until KeyHit(1) End ;------------------------------------------------------------Funktionen--------------------------------------------------------------------- Function schuss() x1= MouseX() y1= MouseY() w# = ATan2(x1-505,y1-205) If MouseDown(1) Then s = New schuss s\x_Pos = 505 s\y_Pos = 205 s\winkel# = w# + Rnd(0,6) EndIf For s = Each schuss For a = Each Inf Color 255,0,0 If s\x_Pos = a\xpos Then Delete a EndIf If s\y_pos = a\ypos Then Delete a EndIf Line s\x_Pos,s\y_Pos,s\x_Pos+Sin(s\winkel#)*10,s\y_Pos+Cos(s\winkel#)*10 s\x_Pos = s\x_Pos + Sin(s\winkel#) * 20 s\y_Pos = s\y_Pos + Cos(s\winkel#) * 20 Color 255,255,255 If s\x_Pos = a\xpos Then ;FEEEHLEEER??? Delete a EndIf If s\y_pos = a\ypos Then Delete a EndIf Next Next End Function Function Turm() x1= MouseX() y1= MouseY() Oval 500, 200, 10, 10 ,1 Color 255,0,0 Line 505,205,x1, y1 Color 255,255,255 End Function Function Gegner() If MouseHit(3) Then a.Inf = New Inf a\xpos# = Rnd(0,1024) a\ypos# = 0 a\leben = 100 a\speed = Rnd(1,3) End If If MouseHit(2) Then Delete Each Inf anz=0 End If For a.Inf = Each Inf anz = anz +1 Line a\xpos,a\ypos,a\xpos+10,a\ypos+10 Line a\xpos,a\ypos+10,a\xpos+10, a\ypos a\ypos = a\ypos + a\speed Text a\xpos,a\ypos, "Health: " + a\leben +" Speed: "+a\speed If a\ypos > 768 Then Delete a.inf anz = anz -1 End If Next Print anz End Function Linke Maustaste schießen, Mittlere "gegner" erstellen, linke Alle gegner Löschen. An der Stelle wo ich den Kommentar Fehler beigefügt habe, stoppt das Programm mit der Fehlermeldung Object doesn't exist. Woran liegt das? |
||
- Zuletzt bearbeitet von Hendy am Mo, Sep 07, 2009 21:54, insgesamt 2-mal bearbeitet
tobias12 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bist du dir sicher, dass auch ein objekt erstellt wird?? | ||
Mein Projekteforum |
- Zuletzt bearbeitet von tobias12 am So, Sep 06, 2009 20:03, insgesamt einmal bearbeitet
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tut mir leid.^^
hab ich schon berichtigt als ich das ebenfalls sah, hatte mich verdrückt. EDIT: in Zeile 48 EDIT2: Ziemlich bei mousedown(1) |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem liegt in der Schuss-Funktion, in Zeile 68 bis 76. Dort wird a gelöscht bzw. kann gelöscht werden unter bestimmten Bedingungen und dann kommt in Zeile 88 der Fehler weil du nochmal darauf zugreifen willst.
Ich würde den ganzen For-Block so umschreiben, scheint zu funktionieren auf den ersten Blick: Code: [AUSKLAPPEN] Color 255,0,0
For s = Each schuss For a = Each Inf If s\x_Pos = a\xpos Then Delete a ElseIf s\y_Pos = a\ypos Then Delete a EndIf Line s\x_Pos,s\y_Pos,s\x_Pos+Sin(s\winkel#)*10,s\y_Pos+Cos(s\winkel#)*10 s\x_Pos = s\x_Pos + Sin(s\winkel#) * 20 s\y_Pos = s\y_Pos + Cos(s\winkel#) * 20 Next Next Color 255,255,255 Und es wird dir damit auch ein bisserl Rechenleistung gespart weil die Color-Befehle nur einmal ausgeführt werden und nciht für jedes Objekt einzeln ![]() mfG; Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] Color 255,0,0 Was auch immer Inf ist, aber die Zeichenfunktion von den Schüssen sollte nicht noch in einer zweiten, unabhängigen Schleife wiederholt werden. Entweder wird das Programm langsam oder wird kein Geschoss gezeichnet, wenn kein Inf-Objekt existiert. Außerdem hängt die Geschwindigkeit von der Anzahl der Inf-Objekte ab. Und das sollte natürlich nicht sein. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die schnellen antworten werde es direkt versuchen, umzusetzen.
@ mpmxyz Inf soll so viel heißen wie Infanterie denn nach und nach will ich mehr objekte einbauen. Da hast du natürlich recht, fällt dir eine Alternative ein, für dieses Geschwindigkeits Problem? |
||
![]() ![]() ![]() |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hendy, schaue doch mal in meine Code-Modifikation.
Die Bewegung ist schon aus der Schleife heraus. |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja hast du. ![]() |
||
![]() ![]() ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group