# Changing Origin Angle of Sprite from Left to Top

## Recommended Posts

Hello, I am building an Oceanic game and need to utilize the water surface.  I am swimming fish through the sea however at angle '0' I want to fish to be pointing up and not left.

I do this by creating the angle 90 degrees:

``````this.xSpeed = Math.cos((this.fishBody.angle+90)/180*Math.PI) * -this.pSpeed;
this.ySpeed = Math.sin((this.fishBody.angle+90)/180*Math.PI) * - this.pSpeed;``````

However, I run into problems down the road with AI

``````Fish.prototype.avoid = function(fishBodx, FishBodY, xsp,ysp){
var targetAngle = this.game.math.angleBetween(
xsp, ysp, fishBodx, FishBodY
);

if (this.fishBody.rotation !== targetAngle) {
var delta = (targetAngle) - (this.fishBody.rotation);

this.TURN_RATE = 3;
// Keep it in range from -180 to 180 to make the most efficient turns.
if (delta > Math.PI) delta -= Math.PI * 2;
if (delta < -Math.PI) delta += Math.PI * 2;

if (delta > 0) {
// Turn clockwise
this.fishBody.angle += this.TURN_RATE;
} else {
// Turn counter-clockwise
this.fishBody.angle -= this.TURN_RATE;
}

// Just set angle to target angle if they are close
this.fishBody.rotation = targetAngle;
}
}
}``````

What is a good solution to this?

##### Share on other sites

Open the image in an editor and rotate it there...

##### Share on other sites

Not a possible solution because i need the range 1 - 180 and -1 - -180 to be aligned with surface for physics calculations.

##### Share on other sites

One possibility (I might be terribly off though, since the entire answer is speculative):

I have made an example as an attempt to describe your problem.

I made a fish and a surface above it, and the fish can move freely under water I assumed.Then I assumed that your fish executing your "avoid" function all the time to simulate surfacing to the water. In my case, the fish is pointing perfectly upwards (perpendicular at least, thats what matters) at 0 degree angle against the surface as you can see .

By the way this was an exercise for me as a first step towards understanding the use of prototype functions, so I implemented my own functions for a Fish and enemyFish (you probably have more fish in the game, thats why your prototype function exists?). I tried to understand your post, but its hard to give a meaningful answer if we don't get enough information to provide a meaningful answer. Can you provide more details?

Another possible solution:

I don't know which physics system you are using, but you could try to invert the length and width of the physics body of your fish (if its a rectangle though, but you can always customize your physical body) to match the "0" degree angle you mentioned: