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

2018/5/27

Don't kill if with shield

KKobra KKobra

2018/5/27

#
I'm trying to make a dagger throw, and I wanted to make it not kill an enemy if it had a shield, checking with a boolean variable this is my code
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class ThrowDagger here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class ThrowDagger extends Actor
{
    /**
     * Act - do whatever the ThrowDagger wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        killEnemy();
        dissapearDagger();
    }    
    public void dissapearDagger()
    {
       Actor platforms = getOneIntersectingObject(Platform.class);
       if(platforms != null)
       {
           getWorld().removeObject(this);
       }
    }
    public boolean daggerHitting()
    {
        Actor actor = getOneObjectAtOffset(0,0, Enemies.class);
        return actor !=null;
    }
    public boolean daggerForEnemy14()
    {
        Actor actor = getOneObjectAtOffset(0,0, Enemy14.class);
        return actor !=null;
    }
    public void kill(Class clss)
    {
        Actor actor = getOneObjectAtOffset(0,0, Enemies.class);
        if(actor != null)
        {
            getWorld().removeObject(actor);
        }
    }

    public void killOrNot(Class clss)
    {
        Levels levels = (Levels) getWorld();
        Enemy14 enemy = (Enemy14) levels.getEnemy14();
        Actor actor = getOneObjectAtOffset(0,0, Enemy14.class);
        if(actor != null)
        {
            getWorld().removeObject(actor);
        }
    }
    public void killEnemy()
    {
        Levels levels = (Levels) getWorld();
        Enemy14 enemy = (Enemy14) levels.getEnemy14();
        if(daggerHitting())
        {
            kill(Enemies.class);
            getWorld().removeObject(this);
        }
        else if (daggerForEnemy14())
        {
            //Here I verify the boolean variable, but do't work correctly
            if (enemy.withShield == false)
            {
                 killOrNot(Enemy14.class);
                 getWorld().removeObject(this);
            }
            else
            {
                 getWorld().removeObject(this);
            }
        }
        else
        {
            dissapearDagger();
        }
    }

}
danpost danpost

2018/5/27

#
KKobra wrote...
I'm trying to make a dagger throw, and I wanted to make it not kill an enemy if it had a shield, checking with a boolean variable << Code Omitted >>
If you are getting any type of error output, please provide what that output is.
You need to login to post a reply.