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

2013/3/17

Help with a counter plz.

Barra84 Barra84

2013/3/17

#
Hey so i have been learning greenfoot for a couple months now and we have been given an assessment to come up with our own mini game using what we have learned from the books so far. Myself i am trying to make a small car like game slightly similar to the crab game however it has the player collecting pickups which effect the car with health ammo etc etc. Anyway im having some serious issues trying to get my counter to update i even tried following the youtube video and changing my code that i had to try get it working.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Kit here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Kit extends Characters
{
    private int numberOfMoves = 0; 
    private int randomSpawn = 0;
    public int ammoCount = 0;
    private Counter counter;
      
    /**
     * Act - do whatever the Kit wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public Kit(Counter ammoCount)
    {
        counter = ammoCount;
    }
    
    public void act() 
    {
       checkKeyPress();
       numberOfMoves++;
       moveCount();
       spawner();
       lookForPickup();
       randomSpawn=0;
       checkCollision();
	   
      
    }    
public void checkKeyPress()
    {
        if (Greenfoot.isKeyDown("space")) 
        {
         placeBomb();
       }
        if(Greenfoot.isKeyDown("left"))
       {
        turn(-4);
       }
        if(Greenfoot.isKeyDown("right"))
       {
        turn(4);
       }//End IF
        if(Greenfoot.isKeyDown("up"))
       {
        move();
       }
    }//End of method check
        
    public void moveCount()
    {
        if (numberOfMoves == 200)
        
            randomSpawn=(Greenfoot.getRandomNumber(10));
            {
                if (numberOfMoves ==200)
                numberOfMoves=0;
            }
    }
    
    public void spawner()
    {
        if (randomSpawn == 1)
        {
        getWorld().addObject(new Jerrycan(),
        Greenfoot.getRandomNumber(1000),
        Greenfoot.getRandomNumber(900));
        }
        if (randomSpawn == 2)
        {
        getWorld().addObject(new Health(),
        Greenfoot.getRandomNumber(1000),
        Greenfoot.getRandomNumber(900));
        }
        if (randomSpawn == 3)
        {
        getWorld().addObject(new Oilslick(),
        Greenfoot.getRandomNumber(1000),
        Greenfoot.getRandomNumber(900));
        }
        if (randomSpawn == 4)
        {
        getWorld().addObject(new Shield(),
        Greenfoot.getRandomNumber(1000),
        Greenfoot.getRandomNumber(900));
        }
        if (randomSpawn == 5)
        {
        getWorld().addObject(new Ammo(),
        Greenfoot.getRandomNumber(1000),
        Greenfoot.getRandomNumber(900));
        }
    }
    
     private void checkCollision()
    {
        Actor a = getOneIntersectingObject(Enemy.class);
        if (a != null )
        {
            getWorld().addObject(new Explosion(), getX(), getY());
            GameWorld gameworld = (GameWorld) getWorld();            
            getWorld().removeObject(this);
            Greenfoot.playSound("gameover.wav");
            
            
        }
    }
    
   
    
     public void lookForPickup()
    {
         if (canSee(Jerrycan.class))//start if
       {
           eat(Jerrycan.class);                   
           //Greenfoot.playSound(""); fuel can sound
           //speed increase
       }
       if (canSee(Oilslick.class))//start if
       {
           eat(Oilslick.class);                   
           //Greenfoot.playSound("skidding.wav"); 
           //speed decrease
       }
        if (canSee(Health.class))//start if
       {
           eat(Health.class);                   
           //Greenfoot.playSound(""); health sound sound
           //health increase
       }
        if (canSee(Ammo.class))//start if
       {
           eat(Ammo.class);
           ammoCount++;
		   counter.add(ammoCount);
           counter.updateImage();
                     
           //increase bombs
       }
        if (canSee(Shield.class))//start if
       {
           eat(Shield.class);                   
           //Greenfoot.playSound(""); shield sound
           //immunity
       }
    }  
    
    public void placeBomb()
    {
        if (ammoCount >= 1) 
        {
             getWorld().addObject(new Bomb(),getX(),getY());
             ammoCount--;
        }
    }
    

            
}
This is the coding from my main car class Kit what im want it to do it update the counter when i collect ammo but atm it doesn't work. Any help would be much appreciated i can also link my counter class if required.
danpost danpost

2013/3/17

#
I would like to see the code where you create and add your counter object to the world and also where you create your Kit object (basically your world class code).
Barra84 Barra84

2013/3/18

#
Hi here is a copy of my world code.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**

 * Write a description of class GameWorld here.
 * 
 * @author Paul Newall) 
 */
public class GameWorld  extends World
{

     Counter counter = new Counter();  
    /**
     * Constructor for objects of class GameWorld.
     * 
     */
    public GameWorld()
     {     
      super(1000,900,1); 
      main();
     }
    /**
     * Method that draw the main screen 
     */
    public void main()
    {
        removeObjects(getObjects(null));
        setBackground("menu.png");
        Start b1 = new Start(this);
        addObject(b1,100,270);
               
        Controls b2 = new Controls(this);
        addObject(b2,100,370);       
        
        Introduction b3 = new Introduction(this);
        addObject(b3,100,470);        
    }
    
       
    /**
     * Method that starts the game
     */
    public void start()
    {
        setBackground("level1background.png");
        //Greenfoot.playSound("");
        level1();
        
    }
    /**
     * Method that draw the controls screen
     */
    public void controls()
    {
        removeObjects(getObjects(null));
        setBackground("controls.png");        
        Back b2 = new Back(this);
        addObject(b2,40,70);
    }
    /**
     * Method that draw the introduction game screen
     */
    public void introduction()
    {
        removeObjects(getObjects(null));
        setBackground("introduction.png");
        
        Back b2 = new Back(this);
        addObject(b2,40,70);
    }
    /**
     * Method to remove all objects on scenario and re-paints the main screen
     */
    public void backMain()
    {
        removeObjects(getObjects(null));
        main();
    }
    /**
     * Method that create all objects of level 1
     */
    public void level1()
    {   
        int i;
        setBackground("level1background.png");
        if(getObjects(null) != null){
            removeObjects(getObjects(null));
            Greenfoot.start();
            Counter counter = new Counter();
            addObject(counter, 50, 800);
            addKit();
            
         for(int enemyCount=0;enemyCount<1;enemyCount++)//adds enemy until 8 in world
        {
            addEnemy();
        }//end for
        
    }
}
    
    public void addEnemy()
    {
         addObject(new Enemy(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
    public void addKit()
    {
        Kit kit = new Kit(counter);
        addObject(new Kit(counter), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
/**
*
    public void addJerrycan()
    {
        addObject(new Jerrycan(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
    public void addHealth()
    {
        addObject(new Health(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
    public void addOilslick()
    {
        addObject(new Oilslick(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
    public void addShield()
    {
        addObject(new Shield(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
    public void addAmmo()
    {
        addObject(new Ammo(), Greenfoot.getRandomNumber((540)+10), Greenfoot.getRandomNumber((540)+10));
    }
*/
    
   
}

You need to login to post a reply.