Why dRot actuator turns the object to the opposite direction if the Actor/Dynamic option is set ?
Try this: two cubes on a plane, both with a motion actuator: dRot = (0,0,0.1,local). Make one of them Dynamic Actor and leave the other as it is (not an actor).
Result: one turns to the left and the other to the right.
Other question: is it possible to know in a python script if the object is dynamic?
I have confirmed the problem you are reporting. It is a bug, and I have traced it back to Blender 2.43. Versions 2.42a and prior handle dRot correctly.
One of the developers should be notified, though I’m not sure what the best way to do that is at present.
Two methods of identifying dynamic objects in Python:
Non-dynamic objects always return a mass of 0, so you can use this hack to tell whether an object is a dynamic actor or not:
cont = GameLogic.getCurrentController()
own = cont.getOwner()
if own.mass > 0:
# The object is dynamic
elif own.mass == 0:
# The object is not dynamic
This will not work for dynamic objects with a mass of 0, though. They will incorrectly be identified as non-dynamic.
Alternately, you could give every object a boolean property named “isDynamic” and set it to TRUE for dynamic objects and FALSE for non-dynamic objects. Then you could use this Python code:
cont = GameLogic.getCurrentController()
own = cont.getOwner()
if own.isDynamic:
# The object is dynamic
elif not own.isDynamic:
# The object is not dynamic
This method will work even for dynamic objects with a mass of 0.