I have a variable named value under the Canvas class. I've created an Object named myCanvas that acts as an energy bar. I want to increment my energy value whenever my Pet class gets clicked. Any help would be appreciated. Let me know if you need more code
1 2 3 4 5 6 7 8 9 10 11 12 | public void act() { if (Greenfoot.mouseClicked(Food. class )) { MyWorld realWorld = (MyWorld) getWorld(); realWorld.myCanvas.value=realWorld.myCanvas.value+ 5 ; } idle(); } |
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 | GreenfootImage img = new GreenfootImage( 142 , 27 ); int value = 0 ; int col = 1 ; //col =1=green, col=2=blue public Canvas() { img.setColor(Color.WHITE); img.drawRect ( 0 , 0 , 141 , 26 ); img.drawString( "NRG:" +value/ 81 * 100 , 1 , 18 ); img.setColor(Color.BLUE); img.fillRect( 60 , 1 ,value, 25 ); setImage(img); } public void act() { updateBar(); } public void updateBar() { img.clear(); img.setColor(Color.WHITE); img.drawRect ( 0 , 0 , 141 , 26 ); img.drawString( "NRG:" +value/ 81 * 100 , 1 , 18 ); img.setColor(Color.BLUE); img.fillRect( 60 , 1 ,value, 25 ); setImage(img); } |
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 | public class MyWorld extends World { /** * Constructor for objects of class MyWorld. * */ Muffin myMuffin = new Muffin(); Canvas myCanvas = new Canvas(); Canvas myECanvas = new Canvas(); HealthBar myBar = new HealthBar(); Food myFood = new Food(); public MyWorld() { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super ( 680 , 425 , 1 ); addObject (myBar, 100 , 15 ); addObject(myCanvas, 75 , 80 ); addObject(myECanvas, 75 , 50 ); addObject(myFood, 600 , 350 ); } } |