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

2015/3/13

Game instantly goes to GameWon method

Krhanos Krhanos

2015/3/13

#
When i start my Game it instantly goes to the you win screen Score code
import greenfoot.*;
import java.awt.Color;
/**
 * Write a description of class Score here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Score extends Actor
{
    /**
     * Act - do whatever the Points wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    int score = 0;
    
    public void act() 
    {
       score();
      GameWon();
    }    

    
    public void score()
    {
        
        GreenfootImage SCORE = new GreenfootImage("Score : " + score, 24, Color.green,new Color(0,0,0,0));
        setImage(SCORE);
    }
    
    public void hitGhost()
    {
        score = score + 1;
       
        
        GreenfootImage img = getImage();
        img.clear();
        img.drawString("Score : "+ score, 55, 25);
    }
    
    public void missedGhost()
    {
        score = score - 5;
       
        
        GreenfootImage img = getImage();
        img.clear();
        img.drawString("Score : "+ score, 55, 25);
    }
    
    public void GameWon()
    {
        
        if (score == 5);
        
        {
            House world = (House) getWorld();
            world.Gamewon();
        }
        
    }
    
}
World code
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)


public class House extends World
{
    Score score = new Score();
    private Score sb;

    public House()
    {    
        super(800, 666, 1); 
        addObject(new Witch(), getWidth()/2, 68);
        addObject(sb = new Score(),77,46);
  
    }
   
    public void act()
    {
        
    if(Greenfoot.getRandomNumber(100)<2) {
        addAGhost();
    }
    
   }
   
    public void addAGhost()
    {
    if( Greenfoot.getRandomNumber(100)<50 ) {
        addObject(new Ghost(3), 25, getHeight()-50);
    } else {
        addObject(new Ghost(-3), getWidth()-25, getHeight()-50);
    }
    }
    public void hitGhost()
    {
      sb.hitGhost();
    
    }
    
    public void missedGhost()
    {
        sb.missedGhost();
    }
    
    public void Gamewon()
    {
        removeObjects(getObjects(Ghost.class));
        removeObjects(getObjects(Witch.class));
        removeObjects(getObjects(Pumpkin.class));
        addObject(new GameWon(), getWidth()/2 ,getHeight()/2 );
        
    }
  } 
Gamewon code
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
 * Write a description of class GameWon here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class GameWon extends Actor
{
    String win = "You win";
    
   
    public void act()
    {
        WIN();
    }
    
   public void WIN()
   {
      
       GreenfootImage GAMEOVER = new GreenfootImage(win, 36, Color.white,new Color(0, 0, 0, 0));
       setImage(GAMEOVER);
       Greenfoot.stop();
    }
}
Krhanos Krhanos

2015/3/13

#
Nvm i fixed it lol
if (score == 5);
         
        {
            House world = (House) getWorld();
            world.Gamewon();
        }
needs to be
if (score == 5)
         
        {
            House world = (House) getWorld();
            world.Gamewon();
        }
You need to login to post a reply.