Entity does not exist

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

TOONY

Betreff: Entity does not exist

BeitragMi, Jan 09, 2013 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe folgende Fehlermeldung bei meinem Code:
"Entity does not exist"

Ich speiche einige Entitys in einem Array und möchte die Entitys mit F1 sofort löschen. Teilweise kommt dabei diese Fehlermeldung.

Allerdings doch vorher überprüft ob die Entity überhaput existiert, bevor sie gelöscht wird. Dann dürfte doch keine Fehlermeldung kommen?

kann mir jemand weiterhelfen?

p.s.
Der Befehl "Freeentity" ist bei der Fehlermeldung markiert!

Code: [AUSKLAPPEN]


if keyhit(59)
For x = 1 To 32
For y = 1 To 32
For z = 1 To 32
For s = 1 To 6;
If entitymap(x,y,z,s) <> 0 Then FreeEntity(entitymap(x,y,z,s))
Next
Next
Next
Next
endif

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Jan 09, 2013 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermute, dass du Werte in deinem Array auf ungleich null hast, die allerdings keinem Entity entsprechen.
Das kann passieren wenn du vor diesem Code irgendwo schon einmal Entities gelöscht hast, und dann den Wert im Array nicht auf null zurückgesetzt hast.
Alternativ:
Bist du dir sicher, dass die Werte 32 nicht ausserhalb des Arrays liegen?
Array-Indices fangen bei 0 an, das heißt, wenn das Array 32 lang ist, dann hat es Einträge 0 bis 31.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

TOONY

BeitragMi, Jan 09, 2013 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Array habe ich auf Dim Entitymap (200,200,200,10) gesetzt. Es sollte also noch genug platz frei sein.

Gibt es denn eine andere möglichkeit zu Überprüfen ob diese Entity existiert, bevor man sie löscht?

PSY

BeitragMi, Jan 09, 2013 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wenn du die entitys mit freeentity loeschst, wird nur das entity an sich geloescht. der handle im dimfeld bleibt bestehen.

verwende types, oder eine mischung aus dim und types, oder setzt einfach das dimfeld auf 0, wenn du das betreffende entity loeschst:

Code: [AUSKLAPPEN]
if keyhit(59)
For x = 1 To 32
For y = 1 To 32
For z = 1 To 32
For s = 1 To 6;
If entitymap(x,y,z,s) <> 0 Then FreeEntity(entitymap(x,y,z,s)) : entitymap(x,y,z,s)=0
Next
Next
Next
Next
endif



PSY
PSY LABS Games
Coders don't die, they just gosub without return
 

TOONY

BeitragMi, Jan 09, 2013 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group