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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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()); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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 ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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)); } } |