- Home /
How to get an object to turn around/flip at a certain point
I'm making a 2D side scroller game and I have this one bit where you have to jump across this lake on lily pads and there are sharks in the water. All you can see is their fins, I have got them moving back and forth but it looks like their swimming backwards, so how to I get the object to flip around? I haven't got any script for this, but here is my script for moving the object and the script for my player to flip just in case there's something I could change in them to make this work: (both JavaScript) ObjectMover: #pragma strict
private var Xpos : float; private var Ypos : float; private var max : boolean;
var Vert : boolean; var maxAmount : int; var step : float;
function Start () { Xpos = transform.position.x; Ypos = transform.position.y; }
function Update () { //SET THE MAX if(Vert){ //Vertical if(transform.position.y >= Ypos + maxAmount){ max = true; }else if(transform.position.y <= Ypos){ max = false; } } else { //Horizontal if(transform.position.x >= Xpos + maxAmount){ max = true; }else if(transform.position.x <= Xpos){ max = false; } }
//MOVING THE PLATFORM if(Vert){ //Vertical movement if(!max){ transform.position.y += step; }else { transform.position.y -= step; } } else { //Horizontal movement if(!max){ transform.position.x += step; }else { transform.position.x -= step; } }
}
TextureFlip (this is what I used for my player): #pragma strict
var X : float;
function Start () { //Gathering normal object scale X = transform.localScale.x; }
function Update () { if(Input.GetKey("a")){ //Gamer pushes left arrow key //Set texture to normal position. transform.localScale.x = -X; }else if(Input.GetKey("d")){ //Push right arrow //Flip the texture transform.localScale.x = X; } }
So basically I want the texture of the shark fin to flip when its going backwards so that it doesn't look like its swimming backwards. I have a texture flip script but that's for my player, i wont be controlling the shark. Thanks in advance
You should use code formatting for your code so that it is easier to read. Use the 101010 button in your answer editor to format your code. And does your player flip? If it does use the same code in your shark mover script.
Answer by NextGenGames · Dec 07, 2014 at 11:12 AM
What you need to do is have a code that follows them, and when they get to where they turn around it flips the y rotation, something like this.
#pragma strict
if (position.x >= 49){
transform.rotation.y = -180;
}
//On the way back, switch the 49s for what ever distance you want!
if (position.x <= -49){
transform.rotation.y = 180;
}
Answer by Mmmpies · Dec 07, 2014 at 08:14 AM
Really you need two images, in gimp (or any image editor) take your image and flip it then save to a new file. You'll end up with a FinLeft and FinRight image.
Then you just need to tell it to use the left image when moving left and the right image when moving right.
If you actually want to see the fin spin round and not just flip from one direction to the other you'll need a set of intermediate images.
Far easier to do this outside unity in an image editor then just call the image you want in your script.
I see you have both vertical and horizontal in your script the same will work for left right up down but in your image editor rotate 90 degrees and -90 degrees from your original image to get the up down images.
Your answer
Follow this Question
Related Questions
Trouble with rotating/flipping textures 0 Answers
Rotating texture around sphere 2 Answers
simple gui question 2 Answers
flipping texture 3 Answers
Rotate To Object Problems. 1 Answer