Hi there,
I am making a space invader game and have trouble with making an timer method for one of my enemies, the turtle.
The goal is when the turtle is hit by a fireball, a timer goes off. Within this (game/frame)time, the turtle is vulnerable to a second attack. When the turtle dies, he falls down and becomes a power-up for our hero.
I tried with a boolean statement that sets the timer on or off. I tried with different combinations of for-loops, but nothing works...
A big thank you from Belgium, the land of beer and sunshine!
Who can help this Belgian dude out?
private GreenfootImage turtleRight1;
private GreenfootImage turtleRight2;
private GreenfootImage turtleRight3;
private GreenfootImage turtleRight4;
private GreenfootImage turtleLeft1;
private GreenfootImage turtleLeft2;
private GreenfootImage turtleLeft3;
private GreenfootImage turtleLeft4;
private GreenfootImage turtleHitLeft1;
private GreenfootImage turtleHitLeft2;
private GreenfootImage turtleHitLeft3;
private GreenfootImage turtleHitLeft4;
private GreenfootImage turtleHitRight1;
private GreenfootImage turtleHitRight2;
private GreenfootImage turtleHitRight3;
private GreenfootImage turtleHitRight4;
private int frame = 1;
private boolean moveRight;
private boolean turtleHit;
private int turtleTimer;
public Turtle()
{
turtleRight1 = new GreenfootImage("turtleRight1.png");
turtleRight2 = new GreenfootImage("turtleRight2.png");
turtleRight3 = new GreenfootImage("turtleRight3.png");
turtleRight4 = new GreenfootImage("turtleRight4.png");
turtleLeft1 = new GreenfootImage("turtleLeft1.png");
turtleLeft2 = new GreenfootImage("turtleLeft2.png");
turtleLeft3 = new GreenfootImage("turtleLeft3.png");
turtleLeft4 = new GreenfootImage("turtleLeft4.png");
turtleHitLeft1 = new GreenfootImage("turtleHitLeft1.png");
turtleHitLeft2 = new GreenfootImage("turtleHitLeft2.png");
turtleHitLeft3 = new GreenfootImage("turtleHitLeft3.png");
turtleHitLeft4 = new GreenfootImage("turtleHitLeft4.png");
turtleHitRight1 = new GreenfootImage("turtleHitRight1.png");
turtleHitRight2 = new GreenfootImage("turtleHitRight2.png");
turtleHitRight3 = new GreenfootImage("turtleHitRight3.png");
turtleHitRight4 = new GreenfootImage("turtleHitRight4.png");
setImage(turtleRight1);
frame = 1;
moveRight = true;
turtleHit = false;
turtleTimer = 0;
}
public void act()
{
checkTurtleHit();
animate();
animateTurtleHit();
turnAtEdge();
dropBomb();
}
private void turnAtEdge()
{
if (isAtEdge())
{
changeDirectionMove();
}
}
private void changeDirectionMove()
{
if(moveRight)
{
moveRight = false;
}
else
{
moveRight = true;
}
}
private void checkTurtleHit()
{
if(isTouching(Fireball.class))
{
turtleTimer = 100;
turtleTimerMethod();
//turtleHit = false;
}
{
turtleHit = false;
}
private void animate()
{
if (moveRight && !turtleHit)
{
move(5);
if(frame == 2)
{
setImage(turtleRight1);
}
else if(frame == 3)
{
setImage(turtleRight2);
}
else if(frame == 4)
{
setImage(turtleRight3);
}
else if(frame == 5)
{
setImage(turtleRight4);
frame = 1;
return;
}
frame++;
}
else if (!turtleHit)
{
move(-5);
if(frame == 2)
{
setImage(turtleLeft1);
}
else if(frame == 3)
{
setImage(turtleLeft2);
}
else if(frame == 4)
{
setImage(turtleLeft3);
}
else if(frame == 5)
{
setImage(turtleLeft4);
frame = 1;
return;
}
frame++;}
}
private void animateTurtleHit()
{
if (turtleHit && moveRight)
{
move(5);
if(frame == 2)
{
setImage(turtleHitRight1);
}
else if(frame == 3)
{
setImage(turtleHitRight2);
}
else if(frame == 4)
{
setImage(turtleHitRight3);
}
else if(frame == 5)
{
setImage(turtleHitRight4);
frame = 1;
return;
}
frame++;
}
else if (turtleHit && !moveRight)
{
move(-5);
if(frame == 2)
{
setImage(turtleHitLeft1);
}
else if(frame == 3)
{
setImage(turtleHitLeft2);
}
else if(frame == 4)
{
setImage(turtleHitLeft3);
}
else if(frame == 5)
{
setImage(turtleHitLeft4);
frame = 1;
return;
}
frame++;}
}
}
}

