- Online Community Forums » Programming Questions » Almost finished, 90 degrees off

Credits go to Arthur Kalliokoski and Tero Laxström for helping out!
This thread is locked; no one can reply to it. rss feed Print
Almost finished, 90 degrees off
Nelson Cole
Member #6,043
July 2005

Thanks for all your tips in my previous post, i managed to get the arm to rotate (pivot actually) and follow the main characters should, only problem is the arm rotates 90 degress off, how can I correct that.

This is located in the main:

// Load arms sprite
BITMAP *arms = load_bitmap("arms.bmp", NULL);
float radians;

This is located in the main while loop:

radians = atan2(mouse_y - ((player->y-mapyoff+1)+15), mouse_x - ((player->x-mapxoff)+1)) + (AL_PI/2.0);

fixed allegro_degrees = ftofix( radians * 255.0 / (2.0 * AL_PI )) & 0xffffff;        

pivot_sprite(screen, arms, (player->x-mapxoff)+1, (player->y-mapyoff+1)+15, 0, 0, allegro_degrees);


Tero Laxström
Member #2,589
July 2002

Rotate the image? Sorry, didn't quite get what's the problem? :)


Nelson Cole
Member #6,043
July 2005

the problem is that the image rotates 90 degrees off, the arm points to the right when the mouse is held above the player, as opposed to pointing right when the mouse is right. The rotation is 90 degrees off.

Arthur Kalliokoski
Second in Command
February 2005

Try 1.5 * AL_PI or 2.5 * AL_PI?

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

Jonatan Hedborg
Member #4,886
July 2004

...So add/substract 90 degrees as needed?

Sweden: Free from the shackles of Democracy since 2008-06-18!

Nelson Cole
Member #6,043
July 2005

Thanks guys i got it working, i had to flip the actual picture by 270 degrees, and then set AL_PI to X 2.5. Thanks alot

Go to: