codice:
package com.gioco.Richisottini;
import com.gioco.Richisottini.CaricatoreImmagini;
import com.gioco.Richisottini.GestoreCollisioni;
import com.gioco.Richisottini.Giocatore;
import com.gioco.Richisottini.Arancia;
import com.gioco.Richisottini.Banana;
import com.gioco.Richisottini.Anguria;
import com.gioco.Richisottini.Limone;
import com.gioco.Richisottini.Pioggiaarancia;
import com.gioco.Richisottini.Pioggiabanana;
import com.gioco.Richisottini.Pioggiaanguria;
import com.gioco.Richisottini.Pioggialimone;
import com.gioco.Richisottini.Pavimento;
import java.applet.Applet;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.List;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.beans.ConstructorProperties;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
/**
*
* @author Richisottini
*/
public class Gioco extends Canvas implements Runnable, KeyListener{
private static final int larghezza = 1500;
private static final int altezza = 1320;
private static final String nome_gioco = "Pioggia Fruit by Richisottini";
private final int margine = 20;
private final int margine1 = 350;
private final int margine2 = 450;
private final int margine3 = 450;
private final int margine6 = 20;
private final int margine4 = 680;
private final int margine5 = 20;
JFrame finestra_gioco = new JFrame(nome_gioco);
JFrame finestra = new JFrame(nome_gioco);
JFrame record = new JFrame(nome_gioco);
JButton Gioca;
JButton Record;
BufferedImage sfondo = null;
BufferedImage pavimento = null;
BufferedImage gioca = null;
BufferedImage arancia = null;
BufferedImage banana = null;
BufferedImage anguria = null;
BufferedImage limone = null;
private boolean giocoAttivo = false;
private Pavimento ogg_pavimento;
private Giocatore giocatore;
private Pioggiaarancia pioggiaarancia;
private Pioggiabanana pioggiabanana;
private Pioggiaanguria pioggiaanguria;
private Pioggialimone pioggialimone;
String sCurrentLine;
public Gioco() {
caricaRisorse();
iniziaGioco();
inizializza();
aggiungiListener();
}
private void inizializza() {
finestra.setName("Selettore Chat");
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra.setPreferredSize(new Dimension(900, 600));
finestra.setResizable(false);
JPanel contenitore = new JPanel();
Gioca = new JButton("Gioca");
Record = new JButton("Record");
SpringLayout layout = new SpringLayout();
contenitore.setLayout(layout);
contenitore.add(Gioca);
contenitore.add(Record);
//Gioca
layout.putConstraint(SpringLayout.WEST, Gioca, margine1, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.NORTH, Gioca, margine2, SpringLayout.NORTH, contenitore);
layout.putConstraint(SpringLayout.EAST, Gioca, -margine1, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Gioca, -margine, SpringLayout.NORTH, Gioca);
layout.putConstraint(SpringLayout.WEST, Gioca, margine1, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.EAST, Gioca, -margine1, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Gioca, -margine, SpringLayout.NORTH, Gioca);
layout.putConstraint(SpringLayout.WEST, Gioca, margine1, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.EAST, Gioca, -margine1, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Gioca, -margine, SpringLayout.SOUTH, contenitore);
//Record
layout.putConstraint(SpringLayout.WEST, Record, margine4, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.NORTH, Record, margine5, SpringLayout.NORTH, contenitore);
layout.putConstraint(SpringLayout.EAST, Record, -margine6, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Record, -margine3, SpringLayout.NORTH, Record);
layout.putConstraint(SpringLayout.WEST, Record, margine4, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.EAST, Record, -margine6, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Record, -margine3, SpringLayout.NORTH, Record);
layout.putConstraint(SpringLayout.WEST, Record, margine4, SpringLayout.WEST, contenitore);
layout.putConstraint(SpringLayout.EAST, Record, -margine6, SpringLayout.EAST, contenitore);
layout.putConstraint(SpringLayout.SOUTH, Record, -margine3, SpringLayout.SOUTH, contenitore);
finestra.add(contenitore);
finestra.pack();
finestra.setVisible(true);
}
void aggiungiListener() {
Gioca.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Gioco gioco = new Gioco();
Dimension dimensione_finestra = new Dimension(larghezza, altezza);
finestra_gioco.setPreferredSize(dimensione_finestra);
finestra_gioco.setMaximumSize(dimensione_finestra);
finestra_gioco.pack();
finestra_gioco.setResizable(false);
finestra_gioco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra_gioco.setVisible(true);
finestra_gioco.add(gioco);
gioco.addKeyListener(gioco);
Thread thread_gioco = new Thread(gioco);
thread_gioco.start();
}
});
Record.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Gioco gioco = new Gioco();
Dimension dimensione_finestra = new Dimension(300, 206);
record.setPreferredSize(dimensione_finestra);
record.setMaximumSize(dimensione_finestra);
record.pack();
record.setResizable(false);
record.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
record.setVisible(true);
List list = new List(5);
list.add("1° "); //aggiungere i record dal file .txt
list.add("2° ");
list.add("3° ");
list.add("4° ");
list.add("5° ");
list.add("6° ");
list.add("7° ");
list.add("8° ");
list.add("9° ");
list.add("10° ");
record.add(list);
}
});
}
public static void main(String[] args) {
new Gioco();
try (BufferedReader br = new BufferedReader(new FileReader("/users/giochi/recordfile.txt")))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void disegna() {
BufferStrategy buffer = this.getBufferStrategy();
if(buffer == null) {
createBufferStrategy(2);
return;
}
Graphics g = buffer.getDrawGraphics();
g.drawImage(sfondo, 0, 0, larghezza, altezza, this);
ogg_pavimento.disegna(g);
giocatore.disegna(g);
pioggiaarancia.disegna(g);
pioggiabanana.disegna(g);
pioggiaanguria.disegna(g);
pioggialimone.disegna(g);
g.setColor(Color.red);
g.drawString(""+ogg_pavimento.vita, 160, 78);
/* Arancia */
g.setColor(Color.red);
g.drawString(""+pioggiaarancia.puntiarancia+"X", 80, 335);
/* Banana */
g.setColor(Color.red);
g.drawString(""+pioggiabanana.puntibanana+"X", 80, 435);
/* Anguria */
g.setColor(Color.red);
g.drawString(""+pioggiaanguria.puntianguria+"X", 80, 235);
/* Limone */
g.setColor(Color.red);
g.drawString(""+pioggialimone.puntilimone+"X", 80, 535);
g.setColor(Color.red);
g.drawString(""+giocatore.punteggio, 205, 168);
if(!giocoAttivo) {
try {
String content = (""+giocatore.punteggio);
File file = new File("/users/giochi/recordfile.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Punteggio Scritto");
} catch (IOException e) {
e.printStackTrace();
}
g.setColor(Color.gray);
g.clearRect(0, 0, larghezza, altezza);
g.setColor(Color.red);
g.drawString("Hai totalizzato "+giocatore.punteggio+" punti, ottenendo: "+pioggiaanguria.puntianguria+"X Anguria/e, "+pioggiaarancia.puntiarancia+"X Arancia/e, "+pioggiabanana.puntibanana+"X Banana/e, "+pioggialimone.puntilimone+"X Limone/i", 750, 660);
/*
JOptionPane.showMessageDialog(null,
"Hai totalizzato: "+giocatore.punteggio+" punti, ottenendo: "+pioggiaanguria.puntianguria+"X Anguria/e, "+pioggiaarancia.puntiarancia+"X Arancia/e, "+pioggiabanana.puntibanana+"X Banana/e, "+pioggialimone.puntilimone+"X Limone/i"
);
return;
*/
}
g.dispose();
buffer.show();
private boolean controllaSconfitta() {
if(ogg_pavimento.vita <= 0) {
return true;
}
return false;
}
@Override
public void run() {
giocoAttivo = true;
while(giocoAttivo) {
aggiorna();
aggiorna2();
aggiorna3();
aggiorna4();
disegna();
}
}
public int getLarghezza() {
return larghezza;
}
public int getAltezza() {
return altezza;
}
}