Entity does not exist
Übersicht BlitzBasic Blitz3D
TOONYBetreff: Entity does not exist |
Mi, Jan 09, 2013 20:34 Antworten mit Zitat |
|
---|---|---|
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 |
||
aMulSieger des Minimalist Compo 01/13 |
Mi, Jan 09, 2013 20:44 Antworten mit Zitat |
|
---|---|---|
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 |
Mi, Jan 09, 2013 20:59 Antworten mit Zitat |
|
---|---|---|
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 |
Mi, Jan 09, 2013 21:26 Antworten mit Zitat |
|
---|---|---|
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 |
Mi, Jan 09, 2013 23:58 Antworten mit Zitat |
|
---|---|---|
Danke | ||
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group