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

2020/1/26

How do I remove one object from the world?

Bourgeoisie_Bird Bourgeoisie_Bird

2020/1/26

#
I am recreating the game tapper for my final project. I have a class called customerSpawn that adds customers to the world.the bartender adds the drinks to the world and then serves them. I want to make it so if two drinks are coming towards a customer it removes the first one but ignores the second.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Customer here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Customer extends Actor
{
    public int timer = 0;
    public int drinksTimer = 0;

    static boolean drinks;
    public boolean Walks = true;
    //customer walks images
    private GreenfootImage c1 = new GreenfootImage("Customer11walking.png");
    private GreenfootImage c2 = new GreenfootImage("Customer12walking.png");
    private GreenfootImage c3 = new GreenfootImage("Customer13walking.png");
    private GreenfootImage c4 = new GreenfootImage("Customer14walking.png");
    //customer drinks images
    private GreenfootImage cD1 = new GreenfootImage("cD1.png");
    private GreenfootImage cD2 = new GreenfootImage("cD2.png");
    private GreenfootImage cD3 = new GreenfootImage("cD3.png");
    private GreenfootImage cD4 = new GreenfootImage("cD4.png");
    private GreenfootImage cD5 = new GreenfootImage("cD5.png");

    private int frame = 1;
    private int animationCounter = 0;
    private int nextImage = 0;
    public int speed;
    int actCounter = 0;	

    public void WalksAnimation()
    {

        if(frame == 20)
        {
            setImage(c1);
        }
        else if(frame == 40)
        {
            setImage(c2);
        }
        else if(frame == 60)
        {
            setImage(c3);
        }
        else if(frame == 80)
        {
            setImage(c4);
            frame = 1;
            return;
        }
        frame ++;

    }

    public void DrinksAnimation()
    {

        if(frame == 1)
        {
            setImage(cD1);
        }
        else if(frame == 2)
        {
            setImage(cD2);
        }
        else if(frame == 3)
        {
            setImage(cD3);
        }
        else if(frame == 4)
        {
            setImage(cD4);
        }
        else if(frame == 5)
        {
            setImage(cD5);
            return;
        }

    }

    public void speed()
    {
        if (Walks == true)
        {
            speed = 0;
            move(speed);
        }
        else if (Walks == false)
        {
            speed = -1;
            move(speed);
        }
    }

    public void act()
    {
        Walks = true;
        speed();
        removeDrinksCustomer();
        WalksAnimation();

        {
            switch(Greenfoot.getRandomNumber(2))
            {
                case 1:
                if(Greenfoot.getRandomNumber(100)> 1)
                {
                    Walks = false;
                }
                break;
                case 2:
                if(Greenfoot.getRandomNumber(10)> 1)
                {
                    speed = 0;
                    SendDrinkBack();
                    Walks = true;
                }
                break;

            }

        }  
    }

    public void removeDrinksCustomer()
    {
        if (Customer.drinks=true &&(isTouching(CustomerSpawn.class)))
        {
            {
                actCounter++;

                if(actCounter == 40)
                {
                    timer++;
                    actCounter = 0;
                }

            }
            if(timer ==3)
            {
                Actor t;
                t = getOneObjectAtOffset(0, 0, CustomerSpawn.class);
                if(t!=null)
                {
                    ((Bar)getWorld()).addScore(50);
                    World w = getWorld();
                    w.removeObject(t);
                    getWorld().removeObject(this);
                    timer=0;
                }
            }
        }  
    }

    public void SendDrinkBack()
    {
        {
            actCounter++;

            if(actCounter == 40)
            {
                timer++;
                actCounter = 0;
            }

        }
        if(timer == 4)
        {
            Empty empty = new Empty();
            getWorld().addObject(empty, getX(),getY());
            timer=0;
        }
    }

}
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class CustomerSpawn here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class CustomerSpawn extends Timer
{
    public int numCustomerTimer;
    int actCounter = 0;
    public void act()
    {
        //customer

        {
            actCounter++;

            if(actCounter == 10)
            {
                numCustomerTimer++;
                actCounter = 0;
            }

        }
        for (int i = 0; i < 1 ; i++)
        {
            switch(Greenfoot.getRandomNumber(4))
            {
                case 1:
                if(Greenfoot.getRandomNumber(100)> 1 && numCustomerTimer == 59)
                {
                    Customer c = new Customer();
                    
                    getWorld().addObject(c,this.getX(),this.getY());
                    numCustomerTimer =0;
                }
                break;
                case 2:               
                if(Greenfoot.getRandomNumber(100)> 1 && numCustomerTimer == 80)
                {
                    Customer c2 = new Customer();
                    getWorld().addObject(c2,this.getX(),this.getY());
                    numCustomerTimer =0;
                }
                break;
                case 3:               
                if(Greenfoot.getRandomNumber(100)> 1 && numCustomerTimer == 77)
                {
                    Customer c3 = new Customer();

                    getWorld().addObject(c3,this.getX(),this.getY());
                    numCustomerTimer = 0;
                }
                break;
                default:Greenfoot.getRandomNumber(4);
            }

        }
    }

}
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Bartender here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Bartender extends Actor
{
    // Declare arrays of GreenfootImages for animation
    private GreenfootImage[] walkingRight;
    private GreenfootImage[] walkingLeft;
    // Declare GreenfootImages for standing
    private GreenfootImage standingRight;
    private GreenfootImage standingLeft;
    // Two booleans for controlling the flow of the action
    private boolean walking;
    private boolean facingLeft;
    // Integers for controlling the speed of the movement and animation
    private int animationCounter;
    private int animationDelay;
    private int animationDelayCounter;
    private int speed;
    //pour drink
    private GreenfootImage B1 = new GreenfootImage("B2.png");
    private GreenfootImage B2 = new GreenfootImage("B3.png");

    private int frame = 1;
    private int animationCounter2 = 0;
    private int nextImage = 0;
    int timer;
    private boolean isKeyPressed;
    public Bartender man;

    static int B1X;
    static int B1Y;

    static int B2X;
    static int B2Y;

    static int B3X;
    static int B3Y;

    static int B4X;
    static int B4Y;

    int NumKeyPressed;
    int actCounter = 0;	

    /**
     * Constructor for WalkingMan imports the necessary images, sets
     * values for variables and sets this Actor's image to begin.
     */
    public Bartender ()
    {
        // Three Strings together to build file name
        String fileName;
        String fileNamePrefix = "Left";
        String fileNameSuffix = ".png";
        // Initialize arrays
        walkingRight = new GreenfootImage[3];
        walkingLeft = new GreenfootImage[3];
        // Use a loop to populate the two image arrays
        for (int i = 0; i < walkingRight.length; i++)
        {
            // Build the file name: Eg. right02.png
            fileName = fileNamePrefix + (i+1) + fileNameSuffix;
            // Use the file for the right facing sprite
            walkingRight[i] = new GreenfootImage(fileName);
            // Build the left facing sprite by flipping the
            // right facing sprite
            walkingLeft[i] = new GreenfootImage (walkingRight[i]);
            walkingLeft[i].mirrorHorizontally();
        }
        // import the right standing image
        standingRight = new GreenfootImage ("B1.png");
        // create the left standing image from the right standing image
        standingLeft = new GreenfootImage (standingRight);
        standingLeft.mirrorHorizontally(); 
        // Set starting values for control variables
        walking = false;
        facingLeft = true;
        // How fast the Actor will move
        speed = 3;
        // How many acts as a delay between changing frames
        animationDelay = 8;
        // Start delay counter  at 0
        animationDelayCounter = 0;
        // Start the animation counter at 0. The animation counter keeps
        // track of what frame the animation is on, and gets reset if the
        // player changes direction. It is only updated every 
        // *animationDelayCounter* acts, so the animation isn't too fast.
        animationCounter = 0;
        // Set starting image
        this.setImage (standingRight);
    }

    public void act() 
    {
        checkKeys();
        limits();
        // animationDelayCounter is used to avoid the animation happening
        // too fast. Each act it increases by 1 until it hits *animationDelay*.
        animationDelayCounter++;
        if(animationDelayCounter == animationDelay)
        {
            animationCounter++;
            animationDelayCounter = 0;
        }
        // Animation counter controls which frame is currently being displayed.
        // If it gets beyond the size of our array of images, reset it to zero
        if (animationCounter > walkingRight.length -1)
            animationCounter = 0;
        checkServe();
        if((isTouching(Empty.class)))
        {
            removeTouching(Empty.class);
            ((Bar)getWorld()).addScore(20);
        }
    }    

    /**
     * Called by WalkingWorld, causes the player to move Right.
     */
    public void walkRight()
    {
        // Check if direction is changing, and if so, reset counter
        if (facingLeft)
            animationCounter = 0;
        // Set control booleans to not facing right and walking
        walking = true;
        facingLeft = false;
        // Set the appropriate image. Note that animationCounter is
        // controlled by the act() method.
        setImage (walkingLeft[animationCounter]);
        // Move the actor
        setLocation (getX() + speed, getY());  
    }

    /**
     * Called by WalkingWorld, causes the player to move Left.
     */
    public void walkLeft()
    {
        // Check if direction is changing, and if so, reset counter
        if (!(facingLeft))
            animationCounter = 0;
        // Set control booleans to facing right and walking
        walking = true;
        facingLeft = true;
        // Set the appropriate image. Note that animationCounter is
        // controlled by the act() method.
        setImage (walkingRight[animationCounter]);
        // Move the actor
        setLocation (getX() - speed, getY());  
    }

    /**
     * Called by WalkingWorld, causes the player to stand still.
     * This method gets called when the World decides that neither
     * directional button has been pushed.
     */
    public void stopWalking()
    {
        // Stop walking
        walking = false;
        // Reset animation counter
        animationCounter = 0;
        // Reset animation delay caounter
        animationDelayCounter = 0;
        // Set appropriate image based on which way player was most recently
        // moving
        if (facingLeft)
            this.setImage (standingRight);
        else
            this.setImage (standingLeft);
    }
    //temp serve code
    private void serve()
    {
        setImage("B4.png");
        Drink drink = new Drink();
        getWorld().addObject(drink, getX(),getY());
        drink.setLocation(getX()-1,getY()-20);
    }

    public void PourDrink()
    {
        if(frame == 1)
        {
            setImage(B1);
        }
        else if(frame == 2)
        {
            setImage(B2);
            return;
        }
    }

    public void checkServe()
    {

        if (Greenfoot.isKeyDown("space")&& (isTouching(Tap.class)))
        {

            timer++;
            PourDrink();
            if (timer >20 && Greenfoot.isKeyDown("space"))
            { 
                serve();
                timer = 0;
            }
        }
    }

    private void checkKeys()
    {
        // boolean to check if either direction was pressed
        isKeyPressed = false;
        if (Greenfoot.isKeyDown("right") && !Greenfoot.isKeyDown("space") &&(isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
            walkRight();
            isKeyPressed = true;
        }
        if (Greenfoot.isKeyDown("left")&& !Greenfoot.isKeyDown("space")&&(isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
            walkLeft();
            isKeyPressed = true;
        }
        if (Greenfoot.isKeyDown("up")&& !Greenfoot.isKeyDown("space") &&(isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
            NumKeyPressed++;
            Up();
            isKeyPressed = true;
        }
        if (Greenfoot.isKeyDown("down")&& !Greenfoot.isKeyDown("space")&&(isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
            NumKeyPressed++;
            Down();
            isKeyPressed = true;
        }
        // In the event that no button is pressed, call the stopWalking method
        if (!(isKeyPressed)&&(isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
            stopWalking();
        }
        /*
        if ((!isTouching(S1.class)||(!isTouching(S2.class)||(!isTouching(S3.class)||(!isTouching(S4.class))))))
        {
        speed = 0;
        }
        else if ((isTouching(S1.class)||(isTouching(S2.class)||(isTouching(S3.class)||(isTouching(S4.class))))))
        {
        speed = 3;
        }
         */
    }

    public void coordinates()
    {

        B1X = 623;
        B1Y=508;

        B2X = 611;
        B2Y=365;

        B3X = 555;
        B3Y=253;

        B4X = 512;
        B4Y=136;

    }

    public void limits()
    {

        if (isTouching(S1.class))
        {
            if (getX()>700)setLocation(700, getY());
            if (getX()<40)setLocation(40, getY());
        }

        if (isTouching(S2.class))
        {
            if (getX()>640)setLocation(640, getY());
            if (getX()<90)setLocation(90, getY());
        }

        if (isTouching(S3.class))
        {
            if (getX()>590)setLocation(590, getY());
            if (getX()<140)setLocation(140, getY());
        }

        if (isTouching(S4.class))
        {
            if (getX()>540)setLocation(540, getY());
            if (getX()<190)setLocation(190, getY());
        }

    }

    public void Up()
    {
        if (isTouching(S1.class) && (Greenfoot.isKeyDown("up"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 2
            coordinates();

            setLocation(B2X, B2Y);
            NumKeyPressed = 0;

            //if (getX() > 660)setLocation(660, 400);
        }

        if (isTouching(S2.class) && (Greenfoot.isKeyDown("up"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 3
            coordinates();

            setLocation(B3X, B3Y);
            NumKeyPressed = 0;

            //setLocation(getX(), getY());
        }

        if (isTouching(S3.class) && (Greenfoot.isKeyDown("up"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 4
            coordinates();

            setLocation(B4X, B4Y);
            NumKeyPressed = 0;
            //setLocation(getX(), getY());
        }

        if (isTouching(S4.class) && (Greenfoot.isKeyDown("up"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 1
            coordinates();

            setLocation(B1X, B1Y);
            NumKeyPressed = 0;
            //setLocation(getX(), getY());
        }

    }

    public void Down()
    {

        if (isTouching(S1.class) && (Greenfoot.isKeyDown("down"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 4
            coordinates();
            setLocation(B4X, B4Y);
            NumKeyPressed = 0;
            //if (getX() > 660)setLocation(660, 400);
        }

        if (isTouching(S2.class) && (Greenfoot.isKeyDown("down"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 1
            coordinates();
            setLocation(B1X, B1Y);
            NumKeyPressed = 0;
            //setLocation(getX(), getY());
        }

        if (isTouching(S3.class) && (Greenfoot.isKeyDown("down"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 2
            coordinates();
            setLocation(B2X, B2Y);
            NumKeyPressed = 0;
            //setLocation(getX(), getY());
        }

        if (isTouching(S4.class) && (Greenfoot.isKeyDown("down"))&& NumKeyPressed ==12)
        {
            //animate spawn

            //set x and y cordinates for 3
            coordinates();
            setLocation(B3X, B3Y);
            NumKeyPressed = 0;
            //setLocation(getX(), getY());
        }
        isKeyPressed = true;

    }
}
danpost danpost

2020/1/26

#
I do not know if it will fix your problem, but I see a single equal sign ( = ) where a double one ( == ) should be used in the Customer class on line 132.
Bourgeoisie_Bird Bourgeoisie_Bird

2020/1/26

#
Hi, thanks for responding I fixed the line of code but it is still removing every drink object that the customer intersects with.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)


public class Customer extends Actor
{
    public int timer = 0;
    public int drinksTimer = 0;

    static boolean drinks;
    public boolean Walks = true;
    //customer walks images
    private GreenfootImage c1 = new GreenfootImage("Customer11walking.png");
    private GreenfootImage c2 = new GreenfootImage("Customer12walking.png");
    private GreenfootImage c3 = new GreenfootImage("Customer13walking.png");
    private GreenfootImage c4 = new GreenfootImage("Customer14walking.png");
    //customer drinks images
    private GreenfootImage cD1 = new GreenfootImage("cD1.png");
    private GreenfootImage cD2 = new GreenfootImage("cD2.png");
    private GreenfootImage cD3 = new GreenfootImage("cD3.png");
    private GreenfootImage cD4 = new GreenfootImage("cD4.png");
    private GreenfootImage cD5 = new GreenfootImage("cD5.png");

    private int frame = 1;
    private int animationCounter = 0;
    private int nextImage = 0;
    public int speed;
    int actCounter = 0;	

    public void WalksAnimation()
    {

        if(frame == 20)
        {
            setImage(c1);
        }
        else if(frame == 40)
        {
            setImage(c2);
        }
        else if(frame == 60)
        {
            setImage(c3);
        }
        else if(frame == 80)
        {
            setImage(c4);
            frame = 1;
            return;
        }
        frame ++;

    }

    public void DrinksAnimation()
    {

        if(frame == 1)
        {
            setImage(cD1);
        }
        else if(frame == 2)
        {
            setImage(cD2);
        }
        else if(frame == 3)
        {
            setImage(cD3);
        }
        else if(frame == 4)
        {
            setImage(cD4);
        }
        else if(frame == 5)
        {
            setImage(cD5);
            return;
        }

    }

    public void speed()
    {
        if (Walks == true)
        {
            speed = 1;
            move(speed);
        }
        else if (Walks == false)
        {
            speed = -1;
            move(speed);
        }
    }

    public void act()
    {
        Walks = true;
        speed();
        removeDrinksCustomer();
        WalksAnimation();

        {
            switch(Greenfoot.getRandomNumber(2))
            {
                case 1:
                if(Greenfoot.getRandomNumber(100)> 1)
                {
                    Walks = false;
                }
                break;
                case 2:
                if(Greenfoot.getRandomNumber(10)> 1)
                {
                    speed = 0;
                    SendDrinkBack();
                    Walks = true;
                }
                break;

            }

        }  
    }

    public void removeDrinksCustomer()
    {
        if (Customer.drinks=true &&(isTouching(CustomerSpawn.class)))
        {
            {
                actCounter++;

                if(actCounter == 40)
                {
                    timer++;
                    actCounter = 0;
                }

            }
            if(timer ==3)
            {
                Actor t;
                t = getOneObjectAtOffset(0, 0, CustomerSpawn.class);
                if(t!=null)
                {
                    ((Bar)getWorld()).addScore(50);
                    World w = getWorld();
                    w.removeObject(t);
                    getWorld().removeObject(this);
                    timer=0;
                }
            }
        }  
    }

    public void SendDrinkBack()
    {
        {
            actCounter++;

            if(actCounter == 40)
            {
                timer++;
                actCounter = 0;
            }

        }
        if(timer == 4)
        {
            Empty empty = new Empty();
            getWorld().addObject(empty, getX(),getY());
            timer=0;
        }
    }

}
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)


public class Drink extends Actor
{
    int hit =0;
    public void act() 
    {
        move(-1);
        RemoveDrink();
        DrinkEnd();
    }

    public void DrinkEnd()
    {
        try{
            if ((isTouching(CustomerSpawn.class)))
            {   this.setImage("Crash.png");
                Greenfoot.stop();
                //lives--;
            }
        }catch(Exception e) {

        }

    }

    public void RemoveDrink()
    {
        if ((isTouching(Customer.class)))
        {
            Actor a = getOneIntersectingObject(Customer.class);
            if(a!=null)
            {
                getWorld().removeObject(this);
            }  
            
        }
    }
}
danpost danpost

2020/1/26

#
Line 127 still shows the error.
Bourgeoisie_Bird Bourgeoisie_Bird

2020/1/26

#
I'm sorry that's my fault I copied the code wrong.But is still removing every drink instead of one.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Customer here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Customer extends Actor
{
    public int timer = 0;
    public int drinksTimer = 0;

    static boolean drinks;
    public boolean Walks = true;
    //customer walks images
    private GreenfootImage c1 = new GreenfootImage("Customer11walking.png");
    private GreenfootImage c2 = new GreenfootImage("Customer12walking.png");
    private GreenfootImage c3 = new GreenfootImage("Customer13walking.png");
    private GreenfootImage c4 = new GreenfootImage("Customer14walking.png");
    //customer drinks images
    private GreenfootImage cD1 = new GreenfootImage("cD1.png");
    private GreenfootImage cD2 = new GreenfootImage("cD2.png");
    private GreenfootImage cD3 = new GreenfootImage("cD3.png");
    private GreenfootImage cD4 = new GreenfootImage("cD4.png");
    private GreenfootImage cD5 = new GreenfootImage("cD5.png");

    private int frame = 1;
    private int animationCounter = 0;
    private int nextImage = 0;
    public int speed;
    int actCounter = 0;	

    public void WalksAnimation()
    {

        if(frame == 20)
        {
            setImage(c1);
        }
        else if(frame == 40)
        {
            setImage(c2);
        }
        else if(frame == 60)
        {
            setImage(c3);
        }
        else if(frame == 80)
        {
            setImage(c4);
            frame = 1;
            return;
        }
        frame ++;

    }

    public void DrinksAnimation()
    {

        if(frame == 1)
        {
            setImage(cD1);
        }
        else if(frame == 2)
        {
            setImage(cD2);
        }
        else if(frame == 3)
        {
            setImage(cD3);
        }
        else if(frame == 4)
        {
            setImage(cD4);
        }
        else if(frame == 5)
        {
            setImage(cD5);
            return;
        }

    }

    public void speed()
    {
        if (Walks == true)
        {
            speed = 1;
            move(speed);
        }
        else if (Walks == false)
        {
            speed = -1;
            move(speed);
        }
    }

    public void act()
    {
        Walks = true;
        speed();
        removeDrinksCustomer();
        WalksAnimation();

        {
            switch(Greenfoot.getRandomNumber(2))
            {
                case 1:
                if(Greenfoot.getRandomNumber(100)> 1)
                {
                    Walks = false;
                }
                break;
                case 2:
                if(Greenfoot.getRandomNumber(10)> 1)
                {
                    speed = 0;
                    SendDrinkBack();
                    Walks = true;
                }
                break;

            }

        }  
    }

    public void removeDrinksCustomer()
    {
        if (Customer.drinks==true &&(isTouching(CustomerSpawn.class)))
        {
            {
                actCounter++;

                if(actCounter == 40)
                {
                    timer++;
                    actCounter = 0;
                }

            }
            if(timer ==3)
            {
                Actor t;
                t = getOneObjectAtOffset(0, 0, CustomerSpawn.class);
                if(t!=null)
                {
                    ((Bar)getWorld()).addScore(50);
                    World w = getWorld();
                    w.removeObject(t);
                    getWorld().removeObject(this);
                    timer=0;
                }
            }
        }  
    }

    public void SendDrinkBack()
    {
        {
            actCounter++;

            if(actCounter == 40)
            {
                timer++;
                actCounter = 0;
            }

        }
        if(timer == 4)
        {
            Empty empty = new Empty();
            getWorld().addObject(empty, getX(),getY());
            timer=0;
        }
    }

}
danpost danpost

2020/1/26

#
Another problem I see is the cases in your switch block at line 108 are 0 and 1, not 1 and 2.
Bourgeoisie_Bird Bourgeoisie_Bird

2020/1/26

#
Okay, thank you I fixed that line.is there a way I could use a variable to only remove one drink instead of every instance of the drink class that is added to the world when the drink touches the customer.
danpost danpost

2020/1/26

#
Hard to say why you are getting that behavior. Will need to know size of images used (Drink and Customer) and your World subclass codes might help (at minimum, your world dimensions).
Bourgeoisie_Bird Bourgeoisie_Bird

2020/1/26

#
Hi, I think I might have come up with a solution but I'm having difficulty implementing it into code. I want to assign a value to the customer when it is added to the world increasing the assigned value by one every time a new customer is added. I also want to do the same for the drink. so if the customer with the assigned value of 1 intersects with a drink with assigned number 1 the assigned values go down by one and remove the intersecting drink .customer2 would become customer1 and drink2 would become drink1. If customer1 assigned value was zero it will ignore other drinks that intersect with it.
You need to login to post a reply.