I'm new to this-- I've been browsing the discussions and I've found a lot of helpful stuff, but I can't figure out the last part of my game (based off the crab scenario). Short story is a pony is collecting items, and I want the game to end if it picks up a certain number of items. What happens instead is that it gets more than the required amount, but then the game just sits there instead of stopping properly.
There are only 4 balloons and 3 confetti being placed on the screen, and a random number of cupcakes (between 6 and 12, I guess). What's currently happening is that the pony will successfully complete the lookForEtcetera methods and even when all have been accomplished... nothing happens. My professor and I both looked it over, but couldn't figure it out. Can anyone tell me what I'm missing? Thank you!!
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Pinkie Pie the Pony will move about and collect supplies for her party.
*
*/
public class Pony extends Animal
{
private GreenfootImage pinkie1 = new GreenfootImage("pinkiejump.png");
private GreenfootImage pinkie2 = new GreenfootImage("pinkiewalks.png");
private boolean image1 = true;
private int balloonsPopped;
private int confettiGathered;
private int cupcakesEaten;
public Pony()
{
balloonsPopped = 0;
confettiGathered = 0;
cupcakesEaten = 0;
}
private void walk()
{
move();
if (image1)
setImage(pinkie1);
else
setImage(pinkie2);
image1 = !image1;
}
/**
* Act - do whatever the Pony wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
//action
walk();
checkKeyPress();
lookForBalloons();
lookForConfetti();
lookForCupcakes();
win();
}
public void turnAtEdge()
{
if (atWorldEdge())
{
turn(5);
}
}
public void checkKeyPress()
{
if (Greenfoot.isKeyDown("left"))
{
setRotation(180);
move();
}
if (Greenfoot.isKeyDown("right"))
{
setRotation(0);
move();
}
if (Greenfoot.isKeyDown("up"))
{
setRotation(270);
move();
}
if (Greenfoot.isKeyDown("down"))
{
setRotation(90);
move();
}
}
public void lookForBalloons()
{
if (canSee(Balloons.class))
{
eat(Balloons.class);
Greenfoot.playSound("boing.mp3");
balloonsPopped++;
if (balloonsPopped == 4)
{
Greenfoot.playSound("okee.wav");
}
}
}
public void lookForConfetti()
{
if (canSee(Confetti.class))
{
eat(Confetti.class);
Greenfoot.playSound("clang.mp3");
confettiGathered++;
if (confettiGathered == 3)
{
Greenfoot.playSound("style.wav");
}
}
}
public void lookForCupcakes()
{
if (canSee(Cupcake.class))
{
eat(Cupcake.class);
Greenfoot.playSound("bloop.mp3");
cupcakesEaten++;
if (cupcakesEaten == 6)
{
Greenfoot.playSound("yay.mp3");
}
}
}
public void win()
{
if (cupcakesEaten == 6 && confettiGathered == 3 && balloonsPopped == 4)
{
Greenfoot.playSound("party.wav");
Greenfoot.stop();
}
}
}