i want get to a other level if my score is at a certain value. but my method does n t work
public void checkLevel() { if (score_.getValue()== 30) { MyWorld world = new SecondWorld(); Counter w1counter = (Counter)getWorld().getObjects(Counter.class).get(0); Counter w2counter = (Counter)world.getObjects(Counter.class).get(0); w2counter.setValue(w1counter.getValue()); Greenfoot.setWorld(world); } }
SecondWorld world = new SecondWorld();
public class SecondWorld extends MyWorld { public SecondWorld() { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super(); setSpeed(getSpeed()+5); } }
public class MyWorld extends World { private int speed_; public void act(){ } public MyWorld() { super(1200,700 ,1); prepare(); speed_ = 45; Greenfoot.setSpeed(speed_); } private void prepare() { Lives live= new Lives(); addObject(live,500,50); Counter points = new Counter(); addObject(points,50, 50); Car carr = new Car(live,points); addObject(carr, 62, 249); Gates gate = new Gates() ; addObject(gate,1027,388); } public void setSpeed (int speed) { if (speed > 100) { speed_ = 100; } else if (speed < 1) { speed_ = 1; } else { speed_ = speed; Greenfoot.setSpeed(speed_); } } public int getSpeed() { return speed_ ; } }
public void checkLevel() { MyWorld mw = (MyWorld)getWorld(); // current world if ((score_.getValue()== 30 && mw.getSpeed() == 45) || (score_.getValue() == 60 && mw.getSpeed() == 50) || (score_.getValue() == 90 && mw.getSpeed() == 55)) // etc. { MyWorld mw2 = new MyWorld(); // next world Counter w1c=(Counter)mw.getObjects(Counter.class).get(0); Counter w2c=(Counter)mw2.getObjects(Counter.class).get(0); w2c.setValue(w1c.getValue()); mw2.setSpeed(mw.getSpeed()+5); // increases the speed each level Greenfoot.setWorld(mw2); } }