After some time, I realized it was not storing the values of own.worldPosition, it was storing the actual data, so when I printed it out again, it would not print my previous worldPosition, it would print my current one.
Is there an easy way to store the values as static? I need to do math on them, so can’t do something like print()… how do I accomplish this?
The overall thing I am trying to do is calculate how far the player has moved so I can update a minimap uvs. Thanks!
In Python, any time you assign a class object (like a KX_GameObject, Matrix, or in this case a Vector) to a variable, the variable actually contains what’s called a pointer to the object. A pointer is basically just a reference to where the object resides in memory. By doing this, programs save a ton of time and memory since they don’t have to duplicate an object every time you assign it to a new variable.
Since you haven’t made a copy of the object’s worldPosition Vector, the entry you’re saving in the global dictionary is just a pointer to the original object that is still being updated every frame. This means that if you want to keep a separate version of an object, you need to explicitly make a copy. The Vector class makes this easy since it has a handy copy() method.