- Home /
How to get a enemy to 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;
}
}
Answer by dorpeleg · Dec 08, 2014 at 12:27 PM
Just use the same code from the player on the sharks:
Something like:
//MOVING THE PLATFORM
if(Vert){ //Vertical movement
if(!max){
transform.position.y += step;
transform.localScale.y *= -1;
}else {
transform.position.y -= step;
transform.localScale.y *= 1;
}
} else { //Horizontal movement
if(!max){
transform.position.x += step;
transform.localScale.x *= -1;
}else {
transform.position.x -= step;
transform.localScale.x *= 1;
}
}
}
You might need to play around with the '-' and '+'.
Your answer
Follow this Question
Related Questions
Trouble with rotating/flipping textures 0 Answers
[SOLVED] Object detection inside a GUI area 1 Answer
Raycast questions 1 Answer
How can I make my Enemy look/flip towards my player (2D TOP-DOWN) 1 Answer
Assigning UV Map to model at runtime 0 Answers