# How to flip a 2D character depending on the screen position where I click?

I’m making a 2D game in space, with heroes that fly. When I click in a position, he goes to there flying. But how can I flip it when I send it to an opposite position that I sent the last time?

I don’t know if I’m explaining correctly… It’s a little hard to express, but I can drawing something if needs.

That’s the part of my script that’s move the character and that’s flip it:

``````	void Update () {

if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}

transform.position = Vector3.MoveTowards
(transform.position, target, speed * Time.deltaTime);
}

void Flip ()
{
// Switch the way the player is labelled as facing.
facingRight = !facingRight;

// Multiply the player's x local scale by -1.
Vector3 theScale = playerGraphics.localScale;
theScale.x *= -1;
playerGraphics.localScale = theScale;
}
``````

you can always check the x position of your input against the x position of your hero, then do your logic according to that result.

something like this

``````// input position
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);

if(target.x < hero.x) // input X position is less than hero x position ,thus you clicked on hero's left side
{
if(facingRight)
{
Flip();
}
}
else if(target.x > hero.x) // same as above, but this time inpus is bigger than hero's position, meaning you clicked on hero's right.
{
if(!facingRight)
{
Flip();
}
}
``````