On 19 déc. 07, at 10:22, Souvarine wrote: > For your task there is an easy way to go : Just create a vector > oriented > toward north with your scene (world) as parent. Then create a vector > with your character as parent and oriented toward the front of your > character. And that's it, any time you want to check the > orientation of > your character from north you use the angle_to method with those two > vectors. Easy :)
But take care that this vector may not be in the horizontal plane (as the north vector is). Therefor, the angle_to methode will not return the exact angle to north. you have project this vector on the horizontal plane (example where the horizontal plane's equation is "y=0" (or any constant)) # Having field = World() north = Vector(field,43,0,53) # the 0 is mandatory. The two other value (43, and 54) have to be set as wished) agent= Body(field) # You get the angle to north with : agent_front = Vector(agent,0,0,-1) # you get the agent front agent_front %= field # convert the agent_front vector in the field coordonate agent_front.y # project the vector on the horizontal plane angle = agent_front.angle_to(north) # calculate the angle to north (yeah it's the most useful comment ####################################### ### But beware ! ! ! This is the angle to north, not the orientation, I mean than east and west will have the same value. You have to determine this another way. # but when your north vector run along the X ou Z axis you just have to test the value of the other axis # Having north = Vector(field,0,0,-1) # the north run along the Z axis #add this after angle calculation if agent_front.x < 0: # If the vector is at East. angle = 360-angle It may be a good idea to make a tutorial of it. :-) Have fun. -- marmoute _______________________________________________ Soya-user mailing list Soya-user@gna.org https://mail.gna.org/listinfo/soya-user