Hey I need help for storing my top high scores in a file and displaying them. Any advice, this is what I have so far but it's not quite working
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;
public class City extends World {
int PIPE_SPACING = 200;
int counter = 0;
int counter1 = 0;
int score = 0;
int firstPipe = 215;
ScoreBoard scoreText = null;
public City() {
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(1250, 750, 1, false);
setPaintOrder(ScoreBoard.class, GameOver.class, LeaderboardButton.class, RateButton.class, StartButton.class, Bird.class, TopPipe.class, BottomPipe.class);
//Adding the bird into the game
Bird flappy = new Bird();
addObject(flappy, getWidth()/2 - 100, getHeight()/2);
scoreText = new ScoreBoard();
scoreText.setScore(0);
addObject(scoreText, 825, 300);
}
public void act() {
scrollBackground();
counter++;
BottomPipe bp1 = new BottomPipe();
TopPipe tp2 = new TopPipe();
GreenfootImage image = bp1.getImage();
if (counter % 110 == 0) {
addObject(bp1, getWidth(), getHeight() / 2 + image.getHeight() / 2 + Greenfoot.getRandomNumber(image.getHeight() / 2));
addObject(tp2, bp1.getX(), bp1.getY() - image.getHeight() - PIPE_SPACING);
}
if (counter >= firstPipe) {
if (counter1 % 110 == 0) {
score++;
Greenfoot.playSound("ping.mp3");
scoreText.setScore(score);
}
counter1++;
}
}
private void scrollBackground()
{
GreenfootImage bg = new GreenfootImage(getBackground());
getBackground().drawImage(bg, -1, 0);
getBackground().drawImage(bg, getWidth() - 1, 0);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Bird extends Actor {
int GRAVITY = 5;
int VERTICAL_SPEED = -15;
public Bird() {
GreenfootImage image = getImage();
image.scale(70, 49);
setImage(image);
}
public void act()
{
move();
checkHit();
}
public void move() {
if(Greenfoot.mouseClicked(null)) {
GRAVITY = VERTICAL_SPEED;
}
else if(Greenfoot.isKeyDown("space")||Greenfoot.isKeyDown("up")) {
GRAVITY = VERTICAL_SPEED / 2;
}
if(GRAVITY != 5) {
GRAVITY++;
}
setLocation(getX(), getY() + GRAVITY);
}
public void checkHit() {
if((isTouching(BottomPipe.class)) || (isTouching(TopPipe.class) || (getY() > getWorld().getHeight()))) {
Greenfoot.playSound("nani.mp3");
GameOver g1 = new GameOver();
getWorld().addObject(g1,getWorld().getWidth() /2, getWorld().getHeight()/2 - 100);
StartButton s2 = new StartButton();
getWorld().addObject(s2,getWorld().getWidth() /2, getWorld().getHeight()/2 + 150);
getWorld().removeObject(this);
City c1 = new City();
//System.out.println(c1.score);
LeaderboardScreen l1 = new LeaderboardScreen();
l1.act(c1.score);
Greenfoot.stop();
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class ScoreBoard here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ScoreBoard extends Actor
{
public ScoreBoard() {
GreenfootImage img = new GreenfootImage(500, 250);
setImage(img);
}
public void act()
{
}
public void setScore(int score) {
GreenfootImage img = getImage();
img.clear();
Font f = new Font("Invasion2000", false, false, 50);
img.setFont(f);
img.setColor(Color.WHITE);
img.drawString("" + score, 30, 30);
setImage(img);
}
}
