This site requires JavaScript, please enable it in your browser!
Greenfoot back
davemib123
davemib123 wrote ...

2014/7/1

adding alien when enemytype is dead

davemib123 davemib123

2014/7/1

#
Hi, trying to check that if a Drone enemy has been killed and the random number is less than 3 then release an alien. I have this:
 protected void takeLife(int LifeAmount)
    {
        this.life -= LifeAmount;
        if (this.life <= 0)
        {
            int dropAlien = Greenfoot.getRandomNumber(10);
            if (getWorld().getObjects(Drone.class).size() >=0 && dropAlien <= 3)
            {
                getWorld().addObject(new Alien(), getX(), getY());
            }
            getWorld().removeObject(this);
        }
    }
but it drops Aliens even when other enemytypes are killed. Any suggestions?
danpost danpost

2014/7/1

#
Need more info -- like your class structure, where this code is located, etc.
lordhershey lordhershey

2014/7/1

#
if this code is shared among several classes then you might want to check if this is an instance of Drone looks something like:
if (this.life <= 0 && this instanceof Drone)
        {
            int dropAlien = Greenfoot.getRandomNumber(10);
            if (getWorld().getObjects(Drone.class).size() >=0 && dropAlien <= 3)
            {
                getWorld().addObject(new Alien(), getX(), getY());
            }
            getWorld().removeObject(this);
        }
davemib123 davemib123

2014/7/2

#
thanks lordhershey. instanceof was exactly what was required.
You need to login to post a reply.