I'm currently using
KinematicBody2D to implement my Player and Enemy classes. The Enemy decides how it should move using a behavior tree, and I call
move_and_collide inside one of the leaves of the tree.
I was pretty happy with the way that this was working until I started to try and implement some of my other game mechanics. I have an
Area2D that tries to pull the
KinematicBody2D towards its center, by calling
move_and_collide every frame on any body that has entered the area.
This results in (at least) two calls to
move_and_collide per frame -- one where the Enemy tries to move away from the center of the
Area2D, and another where the
Area2D tries to move the Enemy back towards its center.
Is it safe to structure things like this, or is there some built-in assumption in the way Godot works that requires me to restructure things such that
move_and_collide is only called for a given
KinematicBody2D once per frame?