In my game, the player can gain and lose hp; I am trying to get it so that once 'totalCount' for hp is below 0, the player actor will be removed. When I attempt this, one of my errors is that the symbol can't be found, though as far as I can tell I'm calling it in the same way I've called other methods. The second error comes (I think) from the first one, in that it can't find the variable I'm trying to recieve from the method. I've tried to do it similarly to the tutorial on removing objects (https://www.greenfoot.org/doc/tut-3) with the exception that instead of being removed from collision, its removed from a number. Any help with this is greatly apreciated.
The code related to my issue is here;
Player_1_1:
hp:
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_1_1 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() { int x = getX(); int y = getY(); if (Greenfoot.isKeyDown("a")) { setLocation(x-1,y); if (getOneIntersectingObject(Wall.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(half_wall_side.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(half_wall_up.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(wall_10x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(wall_11x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(wall_1x7.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_wall.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_half_wall_side.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_half_wall_up.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_wall_10x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_wall_11x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_wall_1x7.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_half_wall_side_10x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_half_wall_side_11x1.class) != null) setLocation (getX()+1,getY()); if (getOneIntersectingObject(blue_half_wall_1x7.class) != null) setLocation (getX()+1,getY()); } if (Greenfoot.isKeyDown("d")) { setLocation(x+1,y); if (getOneIntersectingObject(Wall.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(half_wall_side.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(half_wall_up.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(wall_10x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(wall_11x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(wall_1x7.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_wall.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_half_wall_side.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_half_wall_up.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_wall_10x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_wall_11x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_wall_1x7.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_half_wall_side_10x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_half_wall_side_11x1.class) != null) setLocation (getX()-1,getY()); if (getOneIntersectingObject(blue_half_wall_1x7.class) != null) setLocation (getX()-1,getY()); } if (Greenfoot.isKeyDown("w")) { setLocation(x,y-1); if (getOneIntersectingObject(Wall.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(half_wall_side.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(half_wall_up.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(wall_10x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(wall_11x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(wall_1x7.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_wall.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_half_wall_side.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_half_wall_up.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_wall_10x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_wall_11x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_wall_1x7.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_half_wall_side_10x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_half_wall_side_11x1.class) != null) setLocation (getX(),getY()+1); if (getOneIntersectingObject(blue_half_wall_1x7.class) != null) setLocation (getX(),getY()+1); } if (Greenfoot.isKeyDown("s")) { setLocation(x,y+1); if (getOneIntersectingObject(Wall.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(half_wall_side.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(half_wall_up.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(wall_10x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(wall_11x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(wall_1x7.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_wall.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_half_wall_side.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_half_wall_up.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_wall_10x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_wall_11x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_wall_1x7.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_half_wall_side_10x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_half_wall_side_11x1.class) != null) setLocation (getX(),getY()-1); if (getOneIntersectingObject(blue_half_wall_1x7.class) != null) setLocation (getX(),getY()-1); } Actor Medicine; Medicine = getOneObjectAtOffset(0, 0, Medicine.class); if (Medicine != null) { World world; hit_med(); world = getWorld(); world.removeObject(Medicine); //add 1 to hp } Actor Drug; Drug = getOneObjectAtOffset(0, 0, Drug.class); if (Drug != null) { World world; hit_drug(); death(); world = getWorld(); world.removeObject(Drug); //remove 1 from hp } Actor Coin; Coin = getOneObjectAtOffset(0, 0, Coin.class); if (Coin != null) { World world; hit_coin(); world = getWorld(); world.removeObject(Coin); //add 1 to currency } Actor Scene_Changer_L1_1; Scene_Changer_L1_1 = getOneObjectAtOffset(0, 0, Scene_Changer_L1_1.class); if (Scene_Changer_L1_1 != null) { Level_1_2 level = new Level_1_2(); level.getHpCounter().bumpCount(((Level_1_1)getWorld()).getHpCounter().getCount()); level.getCounter().bumpCount(((Level_1_1)getWorld()).getCounter().getCount()); Greenfoot.setWorld(level); } } private void hit_coin() { Level_1_1 levelOneOne = (Level_1_1) getWorld(); coin_counter counter = levelOneOne.getCounter(); counter.bumpCount(1); } private void hit_med() { Level_1_1 levelOneOne = (Level_1_1) getWorld(); hp counter = levelOneOne.getHpCounter(); counter.bumpCount(1); } private void hit_drug() { Level_1_1 levelOneOne = (Level_1_1) getWorld(); hp counter = levelOneOne.getHpCounter(); counter.reduceCount(1); } private void death() { Level_1_1 levelOneOne = (Level_1_1) getWorld(); hp counter = levelOneOne.getHpCounter(); getCount(); Actor Player; if (totalCount ==-1) { World world; world = getWorld(); world.removeObject(Player); } } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class hp here. * * @author (your name) * @version (a version number or a date) */ public class hp extends Actor { private int totalCount = 0; public void Counter() { setImage(new GreenfootImage("HP: 1", 20, Color.WHITE, Color.BLACK)); } public void bumpCount(int amount) { totalCount += amount; setImage(new GreenfootImage("HP: " + totalCount, 20, Color.WHITE, Color.BLACK)); } public void reduceCount(int amount) { totalCount -= amount; setImage(new GreenfootImage("HP: " + totalCount, 20, Color.WHITE, Color.BLACK)); } public int getCount() { return totalCount; } }