I need help with my counter, for some reason, it is not counting up when the bullet collides with the goal, it just stays at 0.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class SimpleGame here. * * @author (your name) * @version (a version number or a date) */ public class SimpleGame extends World { /** * Constructor for objects of class SimpleGame. * */ Counter counter = new Counter(); private static final GreenfootImage bgImage = new GreenfootImage("Background.png"); public SimpleGame() { super(600, 400, 1, false); setBackground(bgImage); populate(); getCounter(); } public void populate() { Player p = new Player(); addObject(p, 100, Greenfoot.getRandomNumber(200)+100); goal g = new goal(); addObject(g, Greenfoot.getRandomNumber(100)+450, 200); Counter c = new Counter(); addObject(c, 300, 50); } public Counter getCounter() { return counter; } }
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 Actor { /** * Act - do whatever the Player 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. movePlayer(); boundaries(); if(Greenfoot.isKeyDown("space")) shoot(); } public Player() { GreenfootImage image = getImage(); image.scale(image.getWidth() - 100, image.getHeight() - 100); setImage(image); } public void movePlayer() //tests all movement keys and moves player { if(Greenfoot.isKeyDown("w")) setLocation(getX(), getY() - 6); if(Greenfoot.isKeyDown("s")) setLocation(getX(), getY() + 6); } public void boundaries() //keeps player within boundaries { if(getY() > 380) setLocation(getX(), getY() - 6); if(getY() < 20) setLocation(getX(), getY() + 6); } public void shoot() { getWorld().addObject(new bullet(), getX()+35, getY()); } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class goal here. * * @author (your name) * @version (a version number or a date) */ public class goal extends Actor { /** * Act - do whatever the goal wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public boolean bool = false; public int count = 0; public int speed = 3; public int scoreCount = 0; public void act() { // Add your action code here. moveg(); } public goal() { GreenfootImage image = getImage(); image.scale(image.getWidth() - 100, image.getHeight() - 100); setImage(image); } public void moveg() { setSpeed(); if(getDir()) setLocation(getX(), getY() + speed); else setLocation(getX(), getY() - speed); } public boolean getDir() { if(getY() < 0) { bool = true; return(true); } else if(getY() > 380) { bool = false; return(false); } return(bool); } public void count() { count++; } public void setSpeed() { count(); if(count == 1000) speed = 4; if(count == 2038) speed = 0; } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.lang.Math; /** * Write a description of class bullet here. * * @author (your name) * @version (a version number or a date) */ public class bullet extends Actor { /** * Act - do whatever the bullet wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { setLocation(getX() + 12, getY()); Actor player = getOneIntersectingObject(goal.class); if(player!=null) { ((SimpleGame)getWorld()).getCounter().addScore(); getWorld().removeObject(this); } } public bullet() { GreenfootImage image = getImage(); image.scale(image.getWidth() - 130, image.getHeight() - 130); setImage(image); } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Counter here. * * @author (your name) * @version (a version number or a date) */ public class Counter extends Actor { public int score = 0; public Counter() { updateCounter(); } public void addScore() { score++; updateCounter(); } public void updateCounter() { setImage(new GreenfootImage("Your Score: " + score, 24, Color.WHITE, Color.BLACK)); } }