- Home /
(2D sidescrolling platformer) Flipping my character right or left depending on the mouse?
Hi, so I can't find anything similar on the forums, so I'll take a shot at a question.
I'm making a 2D platforming sidescroller, and I just have not idea how to flip my character right of left depending whether the mouse is on the right or left. Keep in mind, I know how to do angles as I am using it for rotating an arm around the body using:
Vector3 difference = Camera.main.ScreenToWorldPoint (Input.mousePosition) - transform.position;
difference.Normalize ();
float rotZ = Mathf.Atan2 (difference.y, difference.x) * Mathf.Rad2Deg;
But I just can't figure out how to do it. I make it so either my player constantly vibrates, flipping left and right, or doing nothing at all. I just don't know how to make/structure the code.
I tried using a previousRotZ which was put inside the character flip function and then having an if statement that went along the lines of:
if( rotZ < 90 && rotZ > -90 && prevRotZ > 90 && prevRotZ < -90(
{
changedDirection = true;
{
But that didn't help either. I just don't know how to do it. If anyone can help I would appreciate.
Answer by robforce · Dec 20, 2014 at 07:31 PM
Nevermind, it was easy to fix. Don't know why the code in the example 2D code has to be so goddamn complicated. All I needed to do for the rotation is this:
transform.localScale = new Vector2(-xScale, yScale);
after declaring yScale and xScale to be floats, and setting them to be the transform.localscale x and y respectively.
Answer by Jackv949 · Dec 20, 2014 at 10:02 AM
One solution I can think of involves checking the mouse position relative to the player.
Example:(Haven't tested it) void Update() { bool isFacingRight = false;
Vector 3 playerScreenPos = Camera.main.WorldToScreenPoint();
Vector 3 mousePos = Input.mousePosition;
if(mousePos.x >= playerScreenPos.x)
isFacingRight = true;
else
isFacingRight = false;
}
Then you could use isFacingRight to set which direction the player is facing. Hope this helps :)
Your answer
Follow this Question
Related Questions
2d character flipping and conditionally walking backwards 0 Answers
Problem with 2D gun rotation script (Would really apreaciate help) 1 Answer
If statement not working 2 Answers
,Why Character Is not Flipping ? There is some problem i am not able to see 0 Answers
2D character not flipping? 1 Answer