Heyho leute ich programmiere momentan ein kleines Spielchen (2 Spieler Reaktor).
In dem Spiel hab ich 5 verschiedene Spielmodi , pro modi eine Klasse
Ich will das so machen,dass sobald ich den Button "schnelles Spiel" anklicke, der Erste Spielmodi startet und wenn ich es fertig hab, soll es "ausgehen", die punkte dabei gespeichert halten, und dann das zweite Modus an machen.....dann3te usw.
Problem ist :
1. ich hab ka wie ich das mit reihenfolge hinkrieg, egal was ich versuche entweder starten alle, oder nur ein einziges und danach fertig.
2. Die punkte werden zwar gespeichert, aber sie werden nicht auf nächste klasse übertragen obwohl selbe variable benutze, es fängt wieder bei null an.
3. Mache Java noch nicht lange also bitte leicht erklären
Hoffe jemand kann mir helfen bin unter Zeitdruck da ich es in 1-2 Tage fertig habe muss und nur noch an diese 2 Probleme hänge
Hauptklasse:
ERSTER SPIELMODUS
ZWEITER SPIELMODUS
Klasse worin sich variable mit Punkten usw. befinden.
In dem Spiel hab ich 5 verschiedene Spielmodi , pro modi eine Klasse
Ich will das so machen,dass sobald ich den Button "schnelles Spiel" anklicke, der Erste Spielmodi startet und wenn ich es fertig hab, soll es "ausgehen", die punkte dabei gespeichert halten, und dann das zweite Modus an machen.....dann3te usw.
Problem ist :
1. ich hab ka wie ich das mit reihenfolge hinkrieg, egal was ich versuche entweder starten alle, oder nur ein einziges und danach fertig.
2. Die punkte werden zwar gespeichert, aber sie werden nicht auf nächste klasse übertragen obwohl selbe variable benutze, es fängt wieder bei null an.
3. Mache Java noch nicht lange also bitte leicht erklären
Hoffe jemand kann mir helfen bin unter Zeitdruck da ich es in 1-2 Tage fertig habe muss und nur noch an diese 2 Probleme hänge
Hauptklasse:
Java:
import java.awt.*;
import java.awt.event.*;
public class Startmenu extends Frame implements ActionListener{
// klassen
Farbnamen frbnmen = new Farbnamen();
Gesamtpunkte versuch= new Gesamtpunkte();
Gleich symbol = new Gleich ();
Maus bilder = new Maus ();
Weiss kl = new Weiss();
Zeahler go = new Zeahler();
//Declarations
Button b1= new Button ("Schnelles Spiel");
Button b2= new Button ("Spiel Einrichten");
public void schnellesSpiel (){
SchnellesSpiel fff= new SchnellesSpiel();
fff.reihenfolge();
}
public void spielEinrichten(){
SpielEinrichten ggg= new SpielEinrichten();
ggg.setVisible(true);
ggg.setSize(500,500);
}
Startmenu(){
super("2Spieler Reaktor");
setLayout(new GridLayout (8,1));
add(b1);
add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed (ActionEvent e){
if (e.getSource()==b1){
schnellesSpiel();
}
if (e.getSource()==b2){
spielEinrichten();
}
}
public static void main (String []args){
Startmenu menu = new Startmenu();
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
menu.addWindowListener(wl);
menu.setVisible(true);
menu.setSize(500,500);
}
}
ERSTER SPIELMODUS
Java:
import java.awt.*;
import java.awt.event.*;
public class Farbnamen extends Frame implements Runnable, KeyListener {
// klasse
Gesamtpunkte versuch = new Gesamtpunkte();
// Declarations
Thread t1;
boolean alreadyPressed = false;
// Anfangspunkte in diesem Modus
int punkte = 1;
int oftdruck=0;
String f;
String[] farbfeld = { "SCHWARZ", "BLAU", "GRAU", "GRÜN", "ORANGE", "ROT","PINK", "GELB"};
int i, x;
// Konstruktur
Farbnamen() {
super("2 Spieler Reaktor");
addKeyListener(this);
}
// Animation
public void startAnimation() {
t1 = new Thread(this);
t1.start();
}
@SuppressWarnings("deprecation")
public void stopAnimation() {
t1.stop();
}
public void run() {
while (true) {
i = (int) (Math.random() * 8);
x = (int) (Math.random() * 8);
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
public void paint(Graphics g) {
// Hintergrundfarbe
g.setColor(Color.cyan);
g.fillRect(0, 0, 300, 600);
g.setColor(Color.gray);
g.fillRect(300, 0, 300, 600);
g.setColor(Color.red);
g.fillRect(600, 0, 300, 600);
// Spieler1
g.setColor(Color.black);
g.drawString("Spieler1", 10, 150);
g.drawString("Gesamtpunkte: " +versuch.getPunkte1() , 10, 165);
// Spieler2
g.drawString("Spieler2", 845, 150);
g.drawString("Gesamtpunkte: " + versuch.getPunkte2(), 787, 165);
// Modus farbnamen:
if (x == 0) {
g.setColor(Color.black);
}
if (x == 1) {
g.setColor(Color.blue);
}
if (x == 2) {
g.setColor(Color.DARK_GRAY);
}
if (x == 3) {
g.setColor(Color.green);
}
if (x == 4) {
g.setColor(Color.orange);
}
if (x == 5) {
g.setColor(Color.red);
}
if (x == 6) {
g.setColor(Color.pink);
}
if (x == 7) {
g.setColor(Color.yellow);
}
g.drawString(farbfeld[i], 450, 300);
//text im mittelfeld
g.setColor(Color.white);
g.drawString(versuch.getMittelfeldinfo(), 330, 325);
g.drawString(versuch.getNewround(), 330, 340);
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
// Neue Runde
if (e.getKeyCode() == KeyEvent.VK_S) {
oftdruck++;
alreadyPressed= false;
versuch.setMittelfeldinfo("Wer ist schneller?");
versuch.setNewround(" ");
startAnimation();
if(oftdruck==4){;
stopAnimation();
setVisible(false);
}
}
// FALLS GESCHAFT
if (i == x) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (alreadyPressed == false) {
versuch.setPunkte1(punkte);
versuch.setMittelfeldinfo("Spieler1 war schneller!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
stopAnimation();
}
alreadyPressed = true;
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
if (alreadyPressed == false) {
versuch.setPunkte2(punkte);
versuch.setMittelfeldinfo("Spieler2 war schneller!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
stopAnimation();
}
alreadyPressed= true;
}
}
// FALLS NICHT GESCHAFT
if (!(i == x)) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (alreadyPressed == false) {
versuch.machwenigerPunkte1(punkte);
stopAnimation();
versuch.setMittelfeldinfo("Das war schlecht Spieler1! Versuchs nochmal!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
}
alreadyPressed= true;
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
if (alreadyPressed == false) {
versuch.machwenigerPunkte2(punkte);
stopAnimation();
versuch.setMittelfeldinfo("Das war schlecht Spieler2! Versuchs nochmal!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
}
alreadyPressed= true;
}
}
}
}
ZWEITER SPIELMODUS
Java:
import java.awt.*;
import java.awt.event.*;
import java.util.HashSet;
public class Gleich extends Frame implements Runnable,KeyListener {
// klassen
Gesamtpunkte versuch = new Gesamtpunkte();
// Declarations
Thread t1;
boolean alreadyPressed = false;
int punkte=1;
int oftdruck=0;
//6 symbole
Image img0 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Desert.jpg");
Image img1 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Koala.jpg");
Image img2 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Lighthouse.jpg");
Image img3 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Tulips.jpg");;
Image img4 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg");
Image img5 =getToolkit().getImage("C:/Users/Public/Pictures/Sample Pictures/Jellyfish.jpg");
//Zufalls zahlen der 6 kästen
int i1,i2,i3,i4,i5,i6;
public Gleich (){
super("2Spieler Reaktor");
addKeyListener(this);
}
public void startAnimation(){
t1 = new Thread(this);
t1.start();
}
@SuppressWarnings("deprecation")
public void stopAnimation(){
t1.stop();
}
public void run(){
while (true) {
//Zufalls zahlen der 6 kästen
i1=(int) (Math.random()*6);//zufallszahl
i2=(int) (Math.random()*6);//zufallszahl
i3=(int) (Math.random()*6);//zufallszahl
i4=(int) (Math.random()*6);//zufallszahl
i5=(int) (Math.random()*6);//zufallszahl
i6=(int) (Math.random()*6);//zufallszahl
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
public void paint (Graphics g){
// Hintergrundfarbe
g.setColor(Color.cyan);
g.fillRect(0, 0, 300, 600);
g.setColor(Color.gray);
g.fillRect(300, 0, 300, 600);
g.setColor(Color.red);
g.fillRect(600, 0, 300, 600);
// Spieler1
g.setColor(Color.black);
g.drawString("Spieler1", 10, 150);
g.drawString("Gesamtpunkte: " + versuch.getPunkte1(), 10, 165);
// Spieler2
g.drawString("Spieler2", 845, 150);
g.drawString("Gesamtpunkte: " + versuch.getPunkte2(), 787, 165);
//MODUS IF 3 GLEICH
//Kasten 1
if (i1==0){g.drawImage(img0, 360, 200,50,50, this);}
if (i1==1){g.drawImage(img1, 360, 200,50,50, this);}
if (i1==2){g.drawImage(img2, 360, 200,50,50, this);}
if (i1==3){g.drawImage(img3, 360, 200,50,50, this);}
if (i1==4){g.drawImage(img4, 360, 200,50,50, this);}
if (i1==5){g.drawImage(img5, 360, 200,50,50, this);}
//Kasten2
if (i2==0){g.drawImage(img0, 420,200,50,50, this);}
if (i2==1){g.drawImage(img1, 420,200,50,50, this);}
if (i2==2){g.drawImage(img2, 420,200,50,50, this);}
if (i2==3){g.drawImage(img3, 420,200,50,50, this);}
if (i2==4){g.drawImage(img4, 420,200,50,50, this);}
if (i2==5){g.drawImage(img5, 420,200,50,50, this);}
//Kasten3
if (i3==0){g.drawImage(img0, 480,200,50,50, this);}
if (i3==1){g.drawImage(img1, 480,200,50,50, this);}
if (i3==2){g.drawImage(img2, 480,200,50,50, this);}
if (i3==3){g.drawImage(img3, 480,200,50,50, this);}
if (i3==4){g.drawImage(img4, 480,200,50,50, this);}
if (i3==5){g.drawImage(img5, 480,200,50,50, this);}
//Kasten4
if (i4==0){g.drawImage(img0, 360,260,50,50, this);}
if (i4==1){g.drawImage(img1, 360,260,50,50, this);}
if (i4==2){g.drawImage(img2, 360,260,50,50, this);}
if (i4==3){g.drawImage(img3, 360,260,50,50, this);}
if (i4==4){g.drawImage(img4, 360,260,50,50, this);}
if (i4==5){g.drawImage(img5, 360,260,50,50, this);}
//Kasten5
if (i5==0){g.drawImage(img0, 420,260,50,50, this);}
if (i5==1){g.drawImage(img1, 420,260,50,50, this);}
if (i5==2){g.drawImage(img2, 420,260,50,50, this);}
if (i5==3){g.drawImage(img3, 420,260,50,50, this);}
if (i5==4){g.drawImage(img4, 420,260,50,50, this);}
if (i5==5){g.drawImage(img5, 420,260,50,50, this);}
//Kasten6
if (i6==0){g.drawImage(img0, 480,260,50,50, this);}
if (i6==1){g.drawImage(img1, 480,260,50,50, this);}
if (i6==2){g.drawImage(img2, 480,260,50,50, this);}
if (i6==3){g.drawImage(img3, 480,260,50,50, this);}
if (i6==4){g.drawImage(img4, 480,260,50,50, this);}
if (i6==5){g.drawImage(img5, 480,260,50,50, this);}
//text im mittelfeld
g.setColor(Color.white);
g.drawString(versuch.getMittelfeldinfo(), 330, 325);
g.drawString(versuch.getNewround(), 330, 340);
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
// Neue Runde
if (e.getKeyCode() == KeyEvent.VK_S) {
oftdruck++;
alreadyPressed= false;
versuch.setMittelfeldinfo("Wer ist schneller?");
versuch.setNewround(" ");
startAnimation();
if(oftdruck==5){
setVisible(false);
stopAnimation();
}
}
//Falls mindestens 3 gleich sind
HashSet<Integer> set = new HashSet<>(6);
set.add(i1);
set.add(i2);
set.add(i3);
set.add(i4);
set.add(i5);
set.add(i6);
if(set.size() <= 4) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (alreadyPressed == false) {
versuch.setPunkte1(punkte);
versuch.setMittelfeldinfo("Spieler1 war schneller!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
stopAnimation();
}
alreadyPressed = true;
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
if (alreadyPressed == false) {
versuch.setPunkte2(punkte);
versuch.setMittelfeldinfo("Spieler2 war schneller!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
stopAnimation();
}
alreadyPressed= true;
}
}
// falls NICHT mindestens 3 gleich sind
if(set.size() >= 4) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (alreadyPressed == false) {
versuch.machwenigerPunkte1(punkte);
stopAnimation();
versuch.setMittelfeldinfo("Das war schlecht Spieler1! Versuchs nochmal!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
}
alreadyPressed= true;
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
if (alreadyPressed == false) {
versuch.machwenigerPunkte2(punkte);
stopAnimation();
versuch.setMittelfeldinfo("Das war schlecht Spieler2! Versuchs nochmal!");
versuch.setNewround("Drücke die taste S für eine weitere Runde");
repaint();
}
alreadyPressed= true;
}
}
}
}
Java:
public class Gesamtpunkte {
int hhh;
int punkte1=0,punkte2=0;
String mittelfeldinfo= new String ("Wer ist schneller?");
String newround= new String(" ");
//Punkte für Spieler1
public void setPunkte1(int punkte){
punkte1=punkte1+punkte;
}
public void machwenigerPunkte1(int punkte){
punkte1=punkte1-punkte;
}
public int getPunkte1 (){
return punkte1;
}
//Punkte für Spieler2
public void setPunkte2(int punkte){
punkte2=punkte2+punkte;
}
public void machwenigerPunkte2(int punkte){
punkte2=punkte2-punkte;
}
public int getPunkte2 (){
return punkte2;
}
//Meldung im Mittleren Feld
public void setMittelfeldinfo (String info){
mittelfeldinfo = info;
}
public String getMittelfeldinfo (){
return mittelfeldinfo;
}
//String neue Runde
public void setNewround(String text){
newround = text;
}
public String getNewround(){
return newround;
}
public void setHHH(int zahl){
hhh=zahl;
}
public int getHHH (){
return hhh;
}
}