public class avoiderWorld extends World
{
//Sound and image variables:
public GreenfootImage LevelUp;
private GreenfootSound Megalovania;
//Counter
private Counter scoreBoard;
//Enemy variables
private int enemy1SpawnRate = 20;
private int enemy2SpawnRate = 20;
private int enemy1Speed = 1;
private int enemy2Speed = 1;
//Levels variables
private int Level1 = 25;
private int Level2 = 25;
private int Level3 = 25;
private float enemyIncreaseSpeedlevel1 = 0.25f;
private float enemyIncreaseSpeedlevel2 = 0.25f;
private float enemyIncreaseSpeedlevel3 = 0.25f;
public avoiderWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 1, false);
Megalovania = new GreenfootSound("sounds/megalovania.wav");
Megalovania.playLoop();
prepare();
}
private void prepare()
{
avatar avatar = new avatar();
addObject(avatar,304,359);
avatar.setLocation(306,353);
scoreBoard = new Counter("Score: ");
addObject(scoreBoard, 70, 20);
}
public void act()
{
//randomly add enemies to the world
if(Greenfoot.getRandomNumber(1500) < enemy1SpawnRate)
{
enemy1 e1 = new enemy1();
e1.setSpeed(enemy1Speed);
addObject(e1, Greenfoot.getRandomNumber(getWidth()-20)+10, -30);
//increase points for each enemy spawned
scoreBoard.setValue(scoreBoard.getValue() + 1);
}
if(Greenfoot.getRandomNumber(1500) < enemy2SpawnRate)
{
enemy2 e2 = new enemy2();
e2.setSpeed(enemy2Speed);
addObject(e2, Greenfoot.getRandomNumber(getWidth()-20)+10, -30);
//increase points for each enemy
scoreBoard.setValue(scoreBoard.getValue() +1);
}
increaseLevel();
}
private void increaseLevel()
{
int score = scoreBoard.getValue();
if( score > Level1)
{
enemy1SpawnRate = enemy1SpawnRate +1;
enemy1Speed = enemy1Speed + enemyIncreaseSpeedlevel1;
Level1 += 100;
//Use can you showText() method to create text for level counter
}
if(score > Level2)
{
enemy1SpawnRate = enemy1SpawnRate +2;
enemy1Speed = enemy1Speed + enemyIncreaseSpeedlevel2;
Level2 += 200;
}
if(score >Level3)
{
enemy1SpawnRate = enemy1SpawnRate +2;
enemy1Speed = enemy1Speed + enemyIncreaseSpeedlevel3;
Level3 += 300;
}
}
public void endGame()
{
AvoiderWorldGameOverScreen go = new AvoiderWorldGameOverScreen();
Greenfoot.setWorld(go);
Megalovania.stop();
}

