This site requires JavaScript, please enable it in your browser!
Greenfoot back
AAA355
AAA355 wrote ...

2017/4/5

adding multiple rounds

AAA355 AAA355

2017/4/5

#
I am trying to make a game with multiple rounds but it will not work and I do not know why. i want it to work in such a way that once all "robbers" have been killed more of them spawn. background(world) code:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class background here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Background extends World
{
    ScoreBoard scoreboard = new ScoreBoard();
    private int timer = 3600;
    
    /**
     * Constructor for objects of class background.
     * 
     */
    public Background()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(1200, 900, 1); 
        prepare();
        
       
    }
    public void timer()
    {
        
        {
            timer--;
            showText("time:"+timer, 500, 50);
            if(timer == 0) Greenfoot.stop();
       }
    }
    // public void Act() {
        // roundTwo();
    // }
    /**
     * Prepare the world for the start of the program.
     * That is: create the initial objects and add them to the world.
     */
    private void prepare()
    {
        Player player = new Player();
        addObject(player,80,808);
        Robber robber = new Robber();
        addObject(robber,1103,68);
        Robber robber2 = new Robber();

        Robber robber4 = new Robber();
        addObject(robber4,539,72);
        Robber robber5 = new Robber();
        addObject(robber5,1127,442);
        Robber robber6 = new Robber();
        addObject(robber6,542,445);
        Robber robber7 = new Robber();
        addObject(robber7,833,272);
        Robber robber8 = new Robber();
        addObject(robber8,302,267);
        Robber robber9 = new Robber();
        addObject(robber9,796,652);
        MoneyBag moneybag = new MoneyBag();
        addObject(moneybag,973,377);
        MoneyBag moneybag2 = new MoneyBag();
        addObject(moneybag2,683,174);
        MoneyBag moneybag3 = new MoneyBag();
        addObject(moneybag3,645,387);
        MoneyBag moneybag4 = new MoneyBag();
        addObject(moneybag4,645,387);
        MoneyBag moneybag5 = new MoneyBag();
        addObject(moneybag5,378,359);
        MoneyBag moneybag6 = new MoneyBag();
        addObject(moneybag6,651,588);
        MoneyBag moneybag7 = new MoneyBag();
        addObject(moneybag7,307,648);
        Timer timer = new Timer();
        addObject(timer,1105,53);
        timer.setLocation(1108,32);
        
        addObject(scoreboard,72,54);
    }
    public ScoreBoard getScoreBoard()
    {
        return scoreboard;
    }
player code:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class player here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Player extends people
{
    
    private final int reloadTime = 200,
                  maxShots = 6;
    private int reloadTimer = 100,
            shotsLeft = maxShots;
    private boolean shooting = false;
    
    /**
     * Act - do whatever the robot wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        
        if(Greenfoot.isKeyDown("left"))
        {
            turn(-5);
        }
        if(Greenfoot.isKeyDown("right"))
        {
            turn(5);
        }
        if(Greenfoot.isKeyDown("up"))
        {
            move(5);
        }
        if(Greenfoot.isKeyDown("down"))
        {
            move(-5);
        }
        
        if (reloadTimer > 50)
        {
            if (--reloadTimer == 50) shotsLeft = maxShots;
            else return;
        }
        
        if (!shooting && Greenfoot.isKeyDown("space"))
        {
            Actor Bullet = new Bullet();
            getWorld().addObject(Bullet, getX(), getY());
            Bullet.setRotation(getRotation());
            shooting = true;
            if (--shotsLeft == 0 ) reloadTimer = reloadTime;
        }
        else if (!Greenfoot.isKeyDown("space")) shooting = false;

        }
    
}
Robber code:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Robber here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Robber extends people
{
    int score = 0;
    
    /**
     * Act - do whatever the man1 wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        // Add your action code here.
        move(Greenfoot.getRandomNumber(8)); //
        turn(10 - Greenfoot.getRandomNumber(20));
        
        if(getX() <=5 || getX() >= getWorld().getWidth() - 5)
        {
            
            turn(90);
            
        }
        
         if(getY() <=5 || getY() >= getWorld().getHeight() - 5)
        {
            
            turn(90);
            
        }
        
        Actor MoneyBag; // removes moneybag hen robber collides wwith it
        
        MoneyBag = getOneObjectAtOffset(0,0,MoneyBag.class);
        
        if(MoneyBag != null){
            getWorld().removeObject(MoneyBag);
            
            getWorld().addObject(new MoneyBag(),Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight()));
            
        }
        
        Actor Player; //removes player when robber collides wwith it
        
        Player = getOneObjectAtOffset(0,0,Player.class);
        
        if(isTouching(Player.class))
        {
            World world = getWorld();
            if (world != null) {
                getWorld().removeObjects(world.getObjects(null));
                world.setBackground("game_over.png");
                Greenfoot.stop();
            }
            
                       
        }
       
        
        
    }     
}
Bullet code:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Bullet here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Bullet extends bullets
{
    public int speed = 10; // sets speed
    private int curryEaten = 0;
    private boolean variable = true;
    private int RobberEaten = 0;
    
    /**
     * the command section thatcontrols the actions of the bullet
     */
    public void act() 
    {
        move(15); // sets movement speed
        lookforRobber();
        
        roundThree();
        roundFour();
        roundFive();
        roundSix(); 
 
         if(getX() >= getWorld().getWidth() -1)
        getWorld().removeObject(this);
        else if(getX() < 1)
        getWorld().removeObject(this);
        else if(getY() >= getWorld().getHeight() -1)
        getWorld().removeObject(this);
        else if(getY() < 1)
        getWorld().removeObject(this);
        }
            /**
     *  adds multiple rounds and kills robber
     */
    public void lookforRobber()
    {
        
        if(isTouching(Robber.class) ) 
        { 
            removeTouching(Robber.class);
            ((Background) getWorld()).getScoreBoard().addScore();
            RobberEaten = RobberEaten +1;
        } 
    }
    
    
    
     public void roundThree()
    { 
        if ( RobberEaten == 7 && variable ==true)
        {
       variable = false;
       getWorld().showText("Round 2" ,555, 455);
        Robber Robber = new Robber();
        getWorld().addObject(Robber,848,242);
        Robber Robber2 = new Robber();
       getWorld(). addObject(Robber2,505,289);
        Robber Robber3 = new Robber();
        getWorld().addObject(Robber3,189,525);
        Robber Robber4 = new Robber();
        getWorld().addObject(Robber4,1097,782);
        Robber Robber5 = new Robber();
        getWorld().addObject(Robber5,76,897);
        Robber Robber6 = new Robber();
        getWorld().addObject(Robber6,66,66);
        Robber Robber7 = new Robber();
        getWorld().addObject(Robber7,984,46);
        Robber Robber8 = new Robber();
        getWorld().addObject(Robber8,1047,397);
        Robber Robber9 = new Robber();
        getWorld().addObject(Robber9,487,74);
        Robber Robber10 = new Robber();
        getWorld().addObject(Robber10,159,299);
         Robber Robber11 = new Robber();
        getWorld().addObject(Robber11,400,550);
        Robber Robber12 = new Robber();
        getWorld().addObject(Robber12,800,700);
        Robber Robber13 = new Robber();
        getWorld().addObject(Robber13,1000,800);
        Robber Robber14 = new Robber();
        getWorld().addObject(Robber12,300,900);
        Robber Robber15 = new Robber();
        getWorld().addObject(Robber13,250,600);
       
        }
    }
      
    public void roundFour()
    { 
        if ( RobberEaten == 34 ) 
        {
       getWorld().showText("Round 4" ,555, 455);
        Robber Robber = new Robber();
        getWorld().addObject(Robber,848,242);
        Robber Robber2 = new Robber();
       getWorld(). addObject(Robber2,505,289);
        Robber Robber3 = new Robber();
        getWorld().addObject(Robber3,189,525);
        Robber Robber4 = new Robber();
        getWorld().addObject(Robber4,1097,782);
        Robber Robber5 = new Robber();
        getWorld().addObject(Robber5,76,897);
        Robber Robber6 = new Robber();
        getWorld().addObject(Robber6,66,66);
        Robber Robber7 = new Robber();
        getWorld().addObject(Robber7,984,46);
        Robber Robber8 = new Robber();
        getWorld().addObject(Robber8,1047,397);
        Robber Robber9 = new Robber();
        getWorld().addObject(Robber9,487,74);
        Robber Robber10 = new Robber();
        getWorld().addObject(Robber10,159,299);
         Robber Robber11 = new Robber();
        getWorld().addObject(Robber11,400,550);
        Robber Robber12 = new Robber();
        getWorld().addObject(Robber12,800,700);
        Robber Robber13 = new Robber();
        getWorld().addObject(Robber13,1000,800);
        Robber Robber14 = new Robber();
        getWorld().addObject(Robber14,300,900);
        Robber Robber15 = new Robber();
        getWorld().addObject(Robber15,250,600);
        Robber Robber16 = new Robber();
        getWorld().addObject(Robber16,300,900);
        Robber Robber17 = new Robber();
        getWorld().addObject(Robber17,250,600);
       
        }
    }
      
    public void roundFive()
    { 
        if ( RobberEaten == 51 ) 
        {
       getWorld().showText("Round 5" ,555, 455);
        Robber Robber = new Robber();
        getWorld().addObject(Robber,848,242);
        Robber Robber2 = new Robber();
       getWorld(). addObject(Robber2,505,289);
        Robber Robber3 = new Robber();
        getWorld().addObject(Robber3,189,525);
        Robber Robber4 = new Robber();
        getWorld().addObject(Robber4,1097,782);
        Robber Robber5 = new Robber();
        getWorld().addObject(Robber5,76,897);
        Robber Robber6 = new Robber();
        getWorld().addObject(Robber6,66,66);
        Robber Robber7 = new Robber();
        getWorld().addObject(Robber7,984,46);
        Robber Robber8 = new Robber();
        getWorld().addObject(Robber8,1047,397);
        Robber Robber9 = new Robber();
        getWorld().addObject(Robber9,487,74);
        Robber Robber10 = new Robber();
        getWorld().addObject(Robber10,159,299);
         Robber Robber11 = new Robber();
        getWorld().addObject(Robber11,400,550);
        Robber Robber12 = new Robber();
        getWorld().addObject(Robber12,800,700);
        Robber Robber13 = new Robber();
        getWorld().addObject(Robber13,1000,800);
        Robber Robber14 = new Robber();
        getWorld().addObject(Robber12,300,900);
        Robber Robber15 = new Robber();
        getWorld().addObject(Robber13,250,600);
        Robber Robber16 = new Robber();
        getWorld().addObject(Robber14,800,900);
        Robber Robber17 = new Robber();
        getWorld().addObject(Robber15,300,750); 
      
        }
    }
    
    public void roundSix()
    { 
        if ( RobberEaten == 66 ) 
        {
       getWorld().showText("Round 6" ,555, 455);
        Robber Robber = new Robber();
        getWorld().addObject(Robber,848,242);
        Robber Robber2 = new Robber();
       getWorld(). addObject(Robber2,505,289);
        Robber Robber3 = new Robber();
        getWorld().addObject(Robber3,189,525);
        Robber Robber4 = new Robber();
        getWorld().addObject(Robber4,1097,782);
        Robber Robber5 = new Robber();
        getWorld().addObject(Robber5,76,897);
        Robber Robber6 = new Robber();
        getWorld().addObject(Robber6,66,66);
        Robber Robber7 = new Robber();
        getWorld().addObject(Robber7,984,46);
        Robber Robber8 = new Robber();
        getWorld().addObject(Robber8,1047,397);
        Robber Robber9 = new Robber();
        getWorld().addObject(Robber9,487,74);
        Robber Robber10 = new Robber();
        getWorld().addObject(Robber10,159,299);
         Robber Robber11 = new Robber();
        getWorld().addObject(Robber11,400,550);
        Robber Robber12 = new Robber();
        getWorld().addObject(Robber12,800,700);
        Robber Robber13 = new Robber();
        getWorld().addObject(Robber13,1000,800);
        Robber Robber14 = new Robber();
        getWorld().addObject(Robber12,300,900);
        Robber Robber15 = new Robber();
        getWorld().addObject(Robber13,250,600);
        Robber Robber16 = new Robber();
        getWorld().addObject(Robber14,300,900);
        Robber Robber17 = new Robber();
        getWorld().addObject(Robber15,250,600); 
        Robber Robber18 = new Robber();
        getWorld().addObject(Robber16,300,900);
        Robber Robber19 = new Robber();
        getWorld().addObject(Robber17,250,600); 
       
        }
    }
    
        
}
Super_Hippo Super_Hippo

2017/4/5

#
In world Background:
private int level = 1;

public void act()
{
    timer();
    if (getObjects(Robber.class).isEmpty()) nextLevel();
}

private void nextLevel()
{
    //add Robbers based on the level variable
}
You need to login to post a reply.