I'm not sure if this is related, but whenever the actor's variable "enterTime" reaches 2 on the way back up, the actor freezes. Much Appreciated!
Here is the code for the actor the keeps freezing.
This actor is added into the world, by the world, after 1800 act cycles.
import greenfoot.*;
public class Portal extends Actor
{
private int enterTime = 20;
private int allAboard = 600;
private int enter = 1;
public void act()
{
if(enter == 1)
{
enterTime--;
}
if(enter == 2)
{
enterTime++;
}
if(enterTime > 20)
{
enterTime = 20;
}
leave();
entrance();
rotation();
}
public void leave()
{
allAboard--;
if(allAboard <= 0)
{
enterTime = 1;
enter = 2;
}
if(enterTime == 20)
{
getWorld().removeObject(this);
}
}
public void rotation()
{
if(enterTime <= 0)
{
turn(3);
}
}
public void entrance()
{
if (enterTime == 19 || enterTime == 20)
{
setImage("portal1.png");
}
if (enterTime == 17 || enterTime == 18)
{
setImage("portal2.png");
}
if (enterTime == 15 || enterTime == 16)
{
setImage("portal3.png");
}
if (enterTime == 13 || enterTime == 14)
{
setImage("portal4.png");
}
if (enterTime == 11 || enterTime == 12)
{
setImage("portal5.png");
}
if (enterTime == 9 || enterTime == 10)
{
setImage("portal6.png");
}
if (enterTime == 7 || enterTime == 8)
{
setImage("portal7.png");
}
if (enterTime == 5 || enterTime == 6)
{
setImage("portal8.png");
}
if (enterTime == 3 || enterTime == 4)
{
setImage("portal9.png");
}
if (enterTime == 1 || enterTime == 2)
{
setImage("portal10.png");
}
}
}

