import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Thief here. * * @author (your name) * @version (a version number or a date) */ public class Thief extends Actor { public int jewelCount = 0; private int speed = 4; private int vspeed = -50; private int health = 3; boolean isCaught = false; boolean hasLost = false; private GreenfootImage rR = new GreenfootImage("robberRight.png"); private GreenfootImage rL = new GreenfootImage("robberLeft.png"); /** * Act - do whatever the Thief wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public Thief() { } public void act() { go(); jump(); } public void go() { if (Greenfoot.isKeyDown("right")) { setImage(rR); setLocation(getX() + speed, getY()); } if (Greenfoot.isKeyDown("left")) { setImage(rL); setLocation(getX() - speed, getY()); } if (Greenfoot.isKeyDown("space")) { jump(); } } public void eatCoin() { Actor coin; coin = getOneObjectAtOffset(0, 0, Coin.class); if (coin != null) { World world; world = getWorld(); world.removeObject(coin); } } public void jump() { setLocation(getX(), getY() + vspeed); fall(); checkFall(); } public boolean onFloor() { Actor below = getOneObjectAtOffset (0, getImage().getHeight()/2, Platform.class); return below != null; } public void checkFall() { if (onFloor()) { Actor below = getOneObjectAtOffset (0, getImage().getHeight()/2, Platform.class); setLocation(below.getX(), below.getY()); } else { } } public void fall() { if (!onFloor()) { setLocation(getX(), getY() - vspeed); } } public void collectJewel() { Actor jewel; jewel = getOneObjectAtOffset(0, 0, Jewel.class); if (jewel != null) { World world; world = getWorld(); world.removeObject(jewel); jewelCount++; } } public void die() { if (health == 0) { hasLost = true; } } public void climbStair() { Actor ladder; ladder = getOneObjectAtOffset(0, 0, Ladder.class); if (ladder != null) { if (Greenfoot.isKeyDown("up")) { setLocation(getX(), getY() - 10); setLocation(getX(), getY() - 10); setLocation(getX(), getY() - 10); } } } public boolean getCaught() { Actor po; po = getOneObjectAtOffset(0, 0, PoliceOfficer.class); if (po != null) { isCaught = true; } return isCaught; } public void loseHealth() { if (isCaught) { health--; } } public int getHealth() { return health; } }