Hello,
I am using ATanFull() to successfully find the angle from my pointer to the player sprite, and cause the player sprite to point directly at the pointer by using the following code
pointer_loc_X = agk::GetPointerX();
pointer_loc_Y = agk::GetPointerY();
playerAngle = agk::ATanFull( pointer_loc_X - agk::GetSpriteX(1) , pointer_loc_Y - agk::GetSpriteY(1) );
agk::SetSpriteAngle( 3, playerAngle );
Works PERFECT...
However as soon as I start with the screen moving using SetViewOffset() .. well now it only works near the center of the screen.
Now I understand conceptually this is probably because the X/Y cordinates of either the screen, or the pointer, or the sprite are not going to match the code above.
But every way I have tried to accommodate for this does not seem to make a darn bit of difference?
So my question is once you start using SetViewOffset() how would I go about this?
See some failed examples here:
FAIL 1:
int viewX = agk::GetViewOffsetX();
int viewY = agk::GetViewOffsetY();
int viewXDiff = 0;
int viewYDiff = 0;
if ( viewX < 0 )viewXDiff = pointer_loc_X - agk::GetSpriteXByOffset(3);
if (viewX > 0 ) viewXDiff = pointer_loc_X + agk::GetSpriteXByOffset(3);
if (viewY < 0 ) viewYDiff = pointer_loc_Y - agk::GetSpriteYByOffset(3);
if (viewY > 0 ) viewYDiff = pointer_loc_Y + agk::GetSpriteYByOffset(3);
playerAngle = agk::ATanFull( viewXDiff , viewYDiff );
I also tried inverting the + and - on each line in case I had it backwards, no luck.
I also tried this and a few variants
int viewX = agk::GetViewOffsetX();
int viewY = agk::GetViewOffsetY();
int viewXDiff = 0;
int viewYDiff = 0;
if ( viewX < 0 ) viewXDiff = pointer_loc_X - agk::GetSpriteXByOffset(3) - viewX ;
if ( viewX > 0 ) viewXDiff = pointer_loc_X - agk::GetSpriteXByOffset(3) + viewX ;
if ( viewY < 0 ) viewYDiff = pointer_loc_Y - agk::GetSpriteYByOffset(3) - viewY;
if ( viewY > 0 ) viewYDiff = pointer_loc_Y - agk::GetSpriteYByOffset(3) + viewY;
playerAngle = agk::ATanFull( viewXDiff , viewYDiff );
Again I inverted all the + and - signs in case I had it backwards. Also no luck.
So any help appreciated, the SetViewOffset() is killing me here!