This is Java, I am currently stumped on how to add a scoreboard for my game that
ID: 3796114 • Letter: T
Question
This is Java,
I am currently stumped on how to add a scoreboard for my game that I am making. I have inclued my code and classes so far. Any help with a working scoreboard would be greatly apperiacted.
Game.java
import javax.swing.JFrame;
public class Game {
public static void main(String[] args)
{
// create the frame
JFrame myFrame = new JFrame("Platformer");
// set up the close operation
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// create panel
Mainpanel myPanel = new Mainpanel();
// add panel
myFrame.getContentPane().add(myPanel);
// pack
myFrame.pack();
// set visibility to true
myFrame.setVisible(true);
}
}
Mainpanel.java
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Random;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Mainpanel extends JPanel implements KeyListener, ActionListener{
private final int boardWidth =1000;
private final int boardHeight =1000;
int x = 0;
int y = 0;
int i= 0;
int goldCount=11;
int score = 0;
ImageIcon myIcon = new ImageIcon("./src/TreasureChest.png");
Timer mainTimer;
player player1;
player player2;
static ArrayList treasure = new ArrayList();
Random rand = new Random();
public String ScoreCount = "Score: " + score;
public Mainpanel()
{
setPreferredSize(new Dimension(boardWidth,boardHeight));
addKeyListener(this);
setFocusable(true);
player1= new player (100,100);
player2= new player (200,200);
addKeyListener(new move(player1));
addKeyListener(new move(player2));
mainTimer = new Timer(10,this);
mainTimer.start();
startGame();
}
JLabel scoreLabel = new JLabel("Score: 0");
public void paintComponent(Graphics page)
{
super.paintComponent(page);
Graphics2D g2d =(Graphics2D) page;
player1.draw(g2d);
player2.draw(g2d);
g2d.
g2d.setColor(new Color(128, 128, 128));
g2d.fillRect(0, 0, 50, 1000);
g2d.setColor(new Color(128, 128, 128));
g2d.fillRect(950, 0, 50, 1000);
g2d.setColor(new Color(128, 128, 128));
g2d.fillRect(50, 0, 900, 50);
g2d.setColor(new Color(128, 128, 128));;
g2d.fillRect(50, 950, 900, 50);
for (int i=0 ; i < treasure.size(); i++){
Gold tempGold = treasure.get(i);
tempGold.draw(g2d);
}
}
public void actionPerformed (ActionEvent arg0){
player1.update();
repaint();
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void addGold(Gold g){
treasure.add(g);
}
public static void removeGold (Gold g) {
treasure.remove(g);
}
public static ArrayList getGoldList() {
return treasure;
}
public void startGame() {
for (int i=0; i < goldCount; i++){
addGold(new Gold(rand.nextInt(boardWidth), rand.nextInt(boardHeight)));
}
}
public void someoneScored()
{
score++;
scoreLabel.setBounds(200, 200, 100, 100);
scoreLabel.setText("Score: " + score);
}
}
Player.java
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;
public class player extends Entity{
int velX=0;
int vely=0;
public player(int x, int y){
super(x, y);
}
public void update(){
y+= vely;
x+= velX;
checkCollisons();
checkOOB();
}
public void draw(Graphics2D g2d) {
g2d.drawImage(getPlayerImg(), x, y, null);
//g2d.draw(getBounds());
}
public Image getPlayerImg(){
ImageIcon ic = new ImageIcon("./src/TreasureChest.png");
return ic.getImage();
}
public void keyPressed(KeyEvent arg0){
int keyCode = arg0.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT)
{
velX=-10;
}
else if (keyCode == KeyEvent.VK_RIGHT)
{
velX=10;
}
else if (keyCode == KeyEvent.VK_UP)
{
vely=-10;
}
else if (keyCode == KeyEvent.VK_DOWN)
{
vely=10;
}
}
public void keyReleased(KeyEvent arg0){
int keyCode = arg0.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT)
{
velX=0;
}
else if (keyCode == KeyEvent.VK_RIGHT)
{
velX=0;
}
else if (keyCode == KeyEvent.VK_UP)
{
vely=0;
}
else if (keyCode == KeyEvent.VK_DOWN)
{
vely=0;
}
}
public void checkCollisons(){
ArrayList treasure = Mainpanel.getGoldList();
for (int i=0; i < treasure.size(); i++){
Gold tempGold= treasure.get(i);
if (getBounds().intersects(tempGold.getBounds())) {
Mainpanel.removeGold(tempGold);
}
}
}
public Rectangle getBounds(){
return new Rectangle(x,y, getPlayerImg().getWidth(null), getPlayerImg().getHeight(null));
}
private void checkOOB() {
if(x < 50) x = 50;
if(x > 900) x = 900;
if(y < 50) y = 50;
if(y > 915) y = 9;
}
}
Entity.java
import java.awt.Graphics2D;
public class Entity {
int x,y;
public Entity(int x, int y){
this.x= x;
this.y=y;
}
public void update(){
}
public void draw(Graphics2D g2d){
}
}
Move.java
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class move extends KeyAdapter {
player p;
public move(player player1){
p= player1;
}
public void keyPressed(KeyEvent e){
p.keyPressed(e);
}
public void keyReleased(KeyEvent e){
p.keyReleased(e);
}
}
Gold.java
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import javax.swing.ImageIcon;
public class Gold extends Entity {
public Gold(int x, int y){
super(x, y);
}
public void update(){
}
public void draw(Graphics2D g2d) {
g2d.drawImage(getGoldImg(), x, y, null);
//g2d.draw(getBounds());
}
public Image getGoldImg(){
ImageIcon ic = new ImageIcon("./src/TreasureChest.png");
return ic.getImage();
}
public Rectangle getBounds(){
return new Rectangle(x,y, getGoldImg().getWidth(null), getGoldImg().getHeight(null));
}
}
Explanation / Answer
import java.util. *;
class Game {
public void start()
{
int randomNumber = (int) (Math.random() * 2000);
int number = -1, index, count;
String decision, guess, playername;
long currentTime = 0, newTime, totalTime;
boolean quitting = false;
count = 0;
System.out.println("Welcome to the xyz Game");
System.out.println("Type "quit" to quit at anytime.");
Scanner scan = new Scanner(System.in);
System.out.println("Try to guess the number. Range is from 1 - 2000: ");
guess = scan.nextLine();
if ("quit".equals(guess))
{
System.out.println("Quitting...");
quitting = true;
} else {
number = Integer.parseInt(guess);
}
while (number != randomNumber && number > -1){
if (number >= 2001 || number <= 1) {
System.out.println("Number is not between 1 - 2000. Enter another number");
}
if (number != randomNumber && number > randomNumber && number <= 2000 && number >= 1) {
System.out.println("Number is very high. Try again!");
}
if (number != randomNumber && number < randomNumber && number < 2000 && number > 1) {
System.out.println("Number is very low. Try again!");
}
if (number != randomNumber)
{
count = count + 1;
}
if (number != randomNumber)
{
Scanner scannew = new Scanner(System.in);
System.out.println("Enter a different number: ");
guess = scannew.nextLine();
if ("quit".equals(guess))
{
System.out.println("Quitting...");
quitting = true;
} else
{
number = Integer.parseInt(guess);
}
}
if (count == 1)
{
long lDateTime = new Date().getTime();
currentTime = lDateTime / 2000;
}
if (quitting) {
break;
}
}
if (!quitting) {
long DateTime = new Date().getTime();
newTime = DateTime / 2000;
totalTime = newTime - currentTime;
System.out.println("You win! total amount of guesses was: " + count + " Total time (seconds): " + (totalTime));
Scanner name = new Scanner(System.in);
System.out.println("Enter your name: ");
playername = scan.nextLine();
//ArrayList<Integer> score = new ArrayList<Integer>();
//score.add(index, count);
//System.out.println(score);
//index++;
Scanner decision1 = new Scanner(System.in);
System.out.println("Do you want to play again? yes/no");
decision = decision1.nextLine();
if ("yes".equals(decision)) {
Game Game();
one.start();
}
if ("no".equals(decision)) {
System.out.println("Quitting...");
}
}
scan.close();
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.