Hi there.
I’ve got into some strange situation with deleting game objects.
So, they are created by loadLevel script which reads json-file with objects(enemies) coordinates and uses factory to spawn these object on screen. While doing this, script also collects generated GO ids into table.
After some game actions one of the GO instance is deleted with go.delete(true). While debugging I found strange behavior. Timer is set to 0.5sec delay to print one of GO instance coordinates like this
function instance_print(enemy_spawn_positions,factory_name)
t=t+0.5
print(tostring(t)..' Instance15 at: '..go.get_position("/instance15"))
end
So, the GO disappears from the screen, and after that I can see these lines in debug logs
DEBUG:SCRIPT: 0.5 Instance15 at: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: 1 Instance15 at: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: 1.5 Instance15 at: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Instance 15 pos in rocket init: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Localized enemy: [/instance15]
DEBUG:SCRIPT: Enemy pos: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Rocket pos: vmath.vector3(700, 164, 0)
DEBUG:SCRIPT: 2 Instance15 at: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: 2.5 Instance15 at: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Rocket collided with hash: [/instance15]
DEBUG:SCRIPT: Rocket collided with group: hash: [enemies]
DEBUG:SCRIPT: Instance 15 pos in rocker final: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Deleting the enemy
DEBUG:SCRIPT: With health: 0
DEBUG:SCRIPT: Enemy pos in final: vmath.vector3(660, 580, 0)
DEBUG:SCRIPT: Enemy name in final: [/instance15]
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
DEBUG:SCRIPT: 5.5 Instance15 at: vmath.vector3(306, 747.33361816406, 0)
DEBUG:SCRIPT: 6 Instance15 at: vmath.vector3(306, 697.33392333984, 0)
DEBUG:SCRIPT: 6.5 Instance15 at: vmath.vector3(306, 647.33422851562, 0)
DEBUG:SCRIPT: 7 Instance15 at: vmath.vector3(306, 597.33453369141, 0)
DEBUG:SCRIPT: 7.5 Instance15 at: vmath.vector3(306, 547.33483886719, 0)
DEBUG:SCRIPT: 8 Instance15 at: vmath.vector3(306, 497.33499145508, 0)
DEBUG:SCRIPT: 8.5 Instance15 at: vmath.vector3(306, 447.33483886719, 0)
DEBUG:SCRIPT: 9 Instance15 at: vmath.vector3(306, 397.3346862793, 0)
DEBUG:SCRIPT: 9.5 Instance15 at: vmath.vector3(306, 347.33453369141, 0)
DEBUG:SCRIPT: 10 Instance15 at: vmath.vector3(306, 297.33438110352, 0)
DEBUG:SCRIPT: 10.5 Instance15 at: vmath.vector3(306, 247.33427429199, 0)
DEBUG:SCRIPT: 11 Instance15 at: vmath.vector3(306, 197.33435058594, 0)
DEBUG:SCRIPT: 11.5 Instance15 at: vmath.vector3(306, 147.33442687988, 0)
DEBUG:SCRIPT: 12 Instance15 at: vmath.vector3(306, 97.334426879883, 0)
DEBUG:SCRIPT: 12.5 Instance15 at: vmath.vector3(306, 47.334407806396, 0)
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
[C]:-1: in function get_position
assets/levels/loadLevel.script:36: in function <assets/levels/loadLevel.script:34>
DEBUG:SCRIPT: 15.5 Instance15 at: vmath.vector3(498, 747.33361816406, 0)
DEBUG:SCRIPT: 16 Instance15 at: vmath.vector3(498, 697.33392333984, 0)
DEBUG:SCRIPT: 16.5 Instance15 at: vmath.vector3(498, 647.33422851562, 0)
DEBUG:SCRIPT: 17 Instance15 at: vmath.vector3(498, 597.33453369141, 0)
DEBUG:SCRIPT: 17.5 Instance15 at: vmath.vector3(498, 547.33483886719, 0)
DEBUG:SCRIPT: 18 Instance15 at: vmath.vector3(498, 497.33499145508, 0)
DEBUG:SCRIPT: 18.5 Instance15 at: vmath.vector3(498, 447.33483886719, 0)
DEBUG:SCRIPT: 19 Instance15 at: vmath.vector3(498, 397.3346862793, 0)
DEBUG:SCRIPT: 19.5 Instance15 at: vmath.vector3(498, 347.33453369141, 0)
DEBUG:SCRIPT: 20 Instance15 at: vmath.vector3(498, 297.33438110352, 0)
DEBUG:SCRIPT: 20.5 Instance15 at: vmath.vector3(498, 247.33427429199, 0)
DEBUG:SCRIPT: 21 Instance15 at: vmath.vector3(498, 197.33435058594, 0)
DEBUG:SCRIPT: 21.5 Instance15 at: vmath.vector3(498, 147.33442687988, 0)
DEBUG:SCRIPT: 22 Instance15 at: vmath.vector3(498, 97.334426879883, 0)
DEBUG:SCRIPT: 22.5 Instance15 at: vmath.vector3(498, 47.334407806396, 0)
ERROR:SCRIPT: assets/levels/loadLevel.script:36: Instance /instance15 not found
stack traceback:
So, for me it seems like after 2-3 delay after GO deletion it appears again in some random coordinates and drops down by 100 pixels every 1 second. BTW I have disabled gravity.
After ghost GO leaves the screen, it’s somehow lost again and spawns in new random coordinates and drops down.