The problem might be caused by adding
angpos[3] to the rotation. When you retrieve the axis angle it is not guaranteed that the rotation will be around the positive y axis. Try printing out the entire
angpos for debugging. A better method might be to retrieve the euler rotation and use the yaw instead.
Also, you can use the
vizmat.AngleToPoint function to compute the angle difference. Here is some sample code:
Code:
pos=male1.get(viz.POSITION)
euler=male1.get(viz.EULER)
pos2=male.get(viz.POSITION)
rotate_degrees = vizmat.AngleToPoint(pos[0],pos[2],pos2[0],pos2[2])
rotate_degrees -= euler[0]