B.class.....
import greenfoot.*;
public class B extends Actor
{
int t,count,speed=5;
boolean upKeyDown;
int movt;
Counter counter;
int health=150;
int s[]={0,1,2};
private static final Color transparent = new Color(0,0,0,0);
private GreenfootImage background;
static final int m=100;
public B(Counter counter)
{
this.counter=counter;
getImage().scale(60,60);
setRotation(180);
background = getImage();
}
public void act()
{
magnet();
sheild();
speed();
stone();
die();
moveANDturn();
}
protected void add(World w)
{
int i=0; while(getOneIntersectingObject(null)!=null && i++<m)
{
setLocation((int)(Math.random()*w.getWidth()), (int)(Math.random()*w.getHeight()));
}
if(i>=m)
{
w.removeObject(this);
}
}
public void magnet()
{
if(Greenfoot.isKeyDown("w") && isTouching(Magn_feild.class))
{
speed=+2;
}else speed=5;
}
public void sheild()
{
if(isTouching(Crate.class))
{
int rand=Greenfoot.getRandomNumber(s.length);
if(rand==0)
getWorld().addObject(new BSheild(),getX(),getY() );
if(rand==1)getWorld().addObject(new HealthB(),410,26 );
if(rand==2)getWorld().addObject(new Score_inc_b(counter),getX(),getY());
}
}
public void speed()
{
Actor Speed=getOneIntersectingObject(Speed.class);
if(Greenfoot.isKeyDown("w") && Speed !=null)
{
speed=+16;
}
}
public void stone()
{
Actor Stone=getOneIntersectingObject(Stone.class);
Actor EnemyTank=getOneIntersectingObject(EnemyTank.class);
Actor EnemyTank1=getOneIntersectingObject(EnemyTank1.class);
Actor Sheild=getOneIntersectingObject(Sheild.class);
Actor Tank=getOneIntersectingObject(Tank.class);
if(Greenfoot.isKeyDown("w") && Stone !=null
|| Greenfoot.isKeyDown("w") && EnemyTank !=null
|| Greenfoot.isKeyDown("w") && EnemyTank1 !=null
|| Greenfoot.isKeyDown("w") && Sheild !=null
|| Greenfoot.isKeyDown("w") && Tank !=null)
{
speed=0;
}
if(upKeyDown != Greenfoot.isKeyDown("w") && Stone !=null
|| upKeyDown != Greenfoot.isKeyDown("w") && EnemyTank1 !=null
|| upKeyDown != Greenfoot.isKeyDown("w") && EnemyTank !=null
|| upKeyDown != Greenfoot.isKeyDown("w") && Sheild !=null
|| upKeyDown != Greenfoot.isKeyDown("w") && Tank !=null)
{
move(-15);
}
}
public void moveANDturn()
{
if(Greenfoot.isKeyDown("w"))
{
movt++;
}else {turn(t);movt=0;}
if(movt>7)
{
move(speed);
}
if(upKeyDown != Greenfoot.isKeyDown("w"))
{
upKeyDown= !upKeyDown;
if(upKeyDown)
{
count+=1;
Projectile1 projectile1=new Projectile1();
getWorld().addObject(projectile1, getX(),getY());
projectile1.setRotation(getRotation());
}
}
if(count % 2==0)
{
t=4;
}else t=-4;
}
public void die()
{
GreenfootImage image = new GreenfootImage(background);
GreenfootImage text = new GreenfootImage(""+health,20,Color.WHITE, transparent);
image.drawImage(text, (image.getWidth()-text.getWidth()-31),
(image.getHeight()-text.getHeight()-20));
setImage(image);
if(isTouching(Projectile.class))
{
counter.tscore++;
}
Actor Projectile=getOneIntersectingObject(Projectile.class);
if(Projectile !=null)
{
health-=50;
getWorld().removeObject(Projectile);
}
if(health ==0 )
{
removeTouching(Tank.class);
getWorld().removeObject(this);
}
}
}

