Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Dava |
I’m have a problem with my game keeps increasing in memory usage, so i had to take actions to fix that
I try to free an object once it passes certain cordinates:
if get_pos().x >= 750 or get_pos().x <= -10:
free()
i used a timer to instance this object in the main game scene every time the timer runs out but when the object fulfills the condition of the x cordinate reaching 750 or above (or -10 and below), instead of just the object being freed, the whole game just closes without an error
Try queue_free()
instead of free()
. The former waits until it’s safe (more or less) to remove the node.
Diet Estus | 2018-04-26 20:04
I tried that, but it doesn’t seem to help free up memory, as the timer spawns new objects, the memory usage just increases and never reduces
Dava | 2018-04-26 20:12
Are you using Godot 2 or Godot 3? If you are using Godot 3, try using just position
rather than get_pos()
. I am not sure if get_pos()
exists or is deprecated in Godot 3 and it might be the problem.
Diet Estus | 2018-04-26 20:15
I’m using Godot 2
Dava | 2018-04-26 20:16
then, try to find a node which is created but not added to scene.
volzhs | 2018-04-27 16:25