import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class MyWorld here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MyWorld extends World
{
/**
* Constructor for objects of class MyWorld.
*
*/
private Actor valueBar;
private int value = 50;
private int minValue = 0;
private int maxValue = 100;
static final Color TRANS = new Color(0,0,0,0);
Actor btn01,btn02;
public MyWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 1);
valueBar = new SimpleActor();
updateValueDisplay();
addObject(valueBar, 400, 100);
addObject(btn01 = getNewButton("BUTTON 01"),200,100);
addObject(btn02 = getNewButton("BUTTON 02"),200,150);
}
public void adjustValue(int amount)
{
value += amount;
if(Greenfoot.mouseClicked(btn01))
if(value<minValue) value = minValue;
if(Greenfoot.mouseClicked(btn02))
if(value>maxValue) value = maxValue;
updateValueDisplay();
}
//public void adjustValue(int amount)
//{
// value += amount;
// if (value<0) value = 0;
// if (value>maxValue) value = maxValue;
// updateValueDisplay();
//}
private void updateValueDisplay()
{
int wide = 100;
int high = 12;
GreenfootImage fullImg = new GreenfootImage(wide, high);
fullImg.setColor(Color.GREEN);
fullImg.fill();
GreenfootImage colorBar = new GreenfootImage(wide, high);
int percentage = wide*value/maxValue;
colorBar.drawImage(fullImg, percentage-wide, 0);
GreenfootImage img = new GreenfootImage(wide+4, high+4);
img.setColor(Color.WHITE);
img.fill();
img.setColor(Color.BLACK);
img.drawRect(0,0,wide+3, high+3);
img.drawImage(colorBar, 2, 2);
valueBar.setImage(img);
}
protected Actor getNewButton(String caption)
{
GreenfootImage base = new GreenfootImage(400,230);
base.setColor(Color.BLUE);
base.fillRect(100,100,200,30);
GreenfootImage text = new GreenfootImage(caption,20,Color.BLACK, TRANS);
base.drawImage(text,200-text.getWidth()/2,115-text.getHeight()/2);
base.setTransparency(128);
Actor button = new Actor()
{
};
button.setImage(base);
return button;
}
}

