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

2020/12/6

scoreboard error

NewbJava NewbJava

2020/12/6

#
import greenfoot.*;  

public class MyWorld extends World
{ 
    static Actor scoreDisplay;
    static Actor highScoreDisplay;
    static int score;
    static int highScore;
    public MyWorld()
    {    
        
        super(600, 400, 1, false);   
        prepare(); 
        scoreDisplay = new Scoreboard();
        highScoreDisplay = new HighScore(); 
        score = -1;
        highScore = -1;
        adjustScore(1); 
        
        
        
         
          
         
    }   
    
    public Scoreboard getScoreboard() 
    {  
        return scoreboard; 
         
         
         
         
    }  
    
    static void adjustScore(int amt)
    {
        score += amt;
        GreenfootImage img = new GreenfootImage("Score: "+score, 24, Color.RED, Color.BLACK);
        scoreDisplay.setImage(img);
        if (score > highScore)
        {
            highScore = score;
            img = new GreenfootImage("High score: "+highScore, 24, Color.RED, Color.BLACK);
            highScoreDisplay.setImage(img);
        }
    } 
    
    public void act() 
    {  
       Switchscreen();
       if(Greenfoot.getRandomNumber(20)<1) 
       {
       addMeteor();  
       } 
       
        
    }    
   
    
    
    
  
    public void addMeteor() 
    { 
     addObject(new Meteors(),getWidth()-1,Greenfoot.getRandomNumber(getHeight()));
    }
    private void prepare() 
    {  
        Rocket Rocket = new Rocket(); 
        addObject(Rocket,100,200); 
        Rocket.setLocation(70,200);  
        
        
    } 
    public void Switchscreen() 
 { 
     boolean noRockets = getObjects(Rocket.class).isEmpty(); 
     if (noRockets == true) 
     { 
        Greenfoot.setWorld(new Playagain()); 
 
 
   } 
}
}
import greenfoot.*;  


public class Scoreboard extends Actor
{ 
    public int score = 0; 
    /**
     * Act - do whatever the Scoreboard wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
       setImage(new GreenfootImage("Score: " + score,24,Color.RED,Color.BLACK)); 
       
    }   
    public void addscore() 
    {  
        score++; 
        
        
    }
}
import greenfoot.*;  

public class Meteors extends Obstacles
{
   
    public void act() 
    {  
        
        move(); 
        meteor();
        remove(); 
        
    }   
    public void meteor() 
    {  
        Actor lasars = getOneIntersectingObject(Lasars.class); 
        if(lasars != null) 
        {   
        World MyWorld = getWorld(); 
        MyWorld myWorld = (MyWorld)MyWorld;  
        Scoreboard scoreboard = myWorld.getScoreboard(); 
        scoreboard.addscore(); 
        getWorld().removeObject(lasars);
        for(int i=0;i<10;i++) 
        { 
            int posx=-20+Greenfoot.getRandomNumber(40);  
            int posy=-20+Greenfoot.getRandomNumber(40);
            getWorld().addObject(new Animate(getImage()),getX()+posx,getY()+posy); 
        } 
        getWorld().addObject(new Explosion(),getX(),getY());  
        toRemove=true;
    
}   

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

/**
 * Write a description of class HighScore here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class HighScore extends Actor
{
    int highscore = 0; 
    int savescore = 0;
    public void act() 
    {
        setImage(new GreenfootImage("High Score: " + highscore,20,Color.RED,Color.BLACK));  
         
       
    }     
    public void gamehighscore() 
    { 
        
        
        
    }
}
NewbJava NewbJava

2020/12/6

#
My problem is that my high score and score are not being displayed on my MyWorld screen
NewbJava NewbJava

2020/12/6

#
Updated code below
NewbJava NewbJava

2020/12/6

#
import greenfoot.*;  

public class MyWorld extends World
{ 
    static Actor scoreDisplay;
    static Actor highScoreDisplay;
    public static int score;
    static int highScore; 
     
    public MyWorld()
    {    
        
        super(600, 400, 1, false);   
        prepare(); 
        scoreDisplay = new Scoreboard();
        highScoreDisplay = new HighScore(); 
        score = -1;
        highScore = -1;
        adjustScore(1); 
        
        
        
         
          
         
    }   
      
    
    static void adjustScore(int amt)
    {
        score += amt;
        GreenfootImage img = new GreenfootImage("Score: "+score, 24, Color.RED, Color.BLACK);
        
        if (score > highScore)
        {
            highScore = score;
            img = new GreenfootImage("High score: "+highScore, 24, Color.RED, Color.BLACK);
            highScoreDisplay.setImage(img);
        }
    } 
    
    public void act() 
    {  
       Switchscreen();
       if(Greenfoot.getRandomNumber(20)<1) 
       {
       addMeteor();  
       } 
       
        
    }    
   
    
    
    
  
    public void addMeteor() 
    { 
     addObject(new Meteors(),getWidth()-1,Greenfoot.getRandomNumber(getHeight()));
    }
    private void prepare() 
    {  
        Rocket Rocket = new Rocket(); 
        addObject(Rocket,100,200); 
        Rocket.setLocation(70,200);  
        
        
        
    } 
    public void Switchscreen() 
 { 
     boolean noRockets = getObjects(Rocket.class).isEmpty(); 
     if (noRockets == true) 
     { 
        Greenfoot.setWorld(new Playagain()); 
 
 
   } 
}
}
import greenfoot.*;  


public class Scoreboard extends Actor
{ 
    public int score = 0; 
    /**
     * Act - do whatever the Scoreboard wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
       setImage(new GreenfootImage("Score: " + score,24,Color.RED,Color.BLACK)); 
       
    }   
    public void addscore() 
    {  
        score++; 
        
        
    }
}
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class HighScore here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class HighScore extends Actor
{
    int highscore = 0; 
    int savescore = 0;
    public void act() 
    {
        setImage(new GreenfootImage("High Score: " + highscore,20,Color.RED,Color.BLACK));  
         
       
    }     
    public void gamehighscore() 
    { 
        
        
        
    }
}
import greenfoot.*;  

public class Meteors extends Obstacles
{
   MyWorld thisGame; 
    public void act() 
    {  
        
        move(); 
        meteor();
        remove(); 
        
    }   
    public void meteor() 
    {  
        Actor lasars = getOneIntersectingObject(Lasars.class); 
        if(lasars != null) 
        {   
        thisGame.score++;  
        getWorld().removeObject(lasars);
        for(int i=0;i<10;i++) 
        { 
            int posx=-20+Greenfoot.getRandomNumber(40);  
            int posy=-20+Greenfoot.getRandomNumber(40);
            getWorld().addObject(new Animate(getImage()),getX()+posx,getY()+posy); 
        } 
        getWorld().addObject(new Explosion(),getX(),getY());  
        toRemove=true;
    
}   

} 
}

NewbJava NewbJava

2020/12/6

#
I am still experiencing the same issue
You need to login to post a reply.