Mein Java Projekt funktioniert nicht

Bitte aktiviere JavaScript!
Wir müssen von der Schule aus mit java ein Wurfbuden spiel programmieren. Das Problem ist jetzt wenn ich das Spiel starte, dass Objekte die man treffen soll irgendwie nicht angezeigt werden, weil sie von der Hintergrundfarbe überzeichnet werden. Kann mir vielleicht irgendjemand helfen?
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Ich würde sagen du machst was falsch :rolleyes:

Spaß bei Seite: ohne Code kann man nicht viel sagen. Wie ist denn die Reihenfolge wie gezeichnet wird ?
 
Poste den Code bitte in Code-Tags
[code=Java] Dein Code[/code]
So kann man ihn besser zitieren / lesen
 
Java:
import sum.kern.*;
public class Wurfbude6 {
  private Bildschirm bs;
  private Buntstift st;
 
  private sZielkreuz szk1;              // level 2
  private sZielkreuz szk0;              // level 2
  private Zielkreuz zk;                // level 1
  private Zielkreuz zk2;               // level 1
  private Zielkreuz zk3;             // startbildschirm
 
 
  private Flasche fl;
  private Flasche fl2;
  private Flasche fl3;
  private Flasche fl4;
  private Flasche fl5;
  private Flasche fl6;
  private Flasche fl7;
  private Flasche fl8;
  private Flasche fl9;
 
  private Maus ms;
  private Tastatur ts;
 
  private double xPos;
  private double yPos;
 
  private Stern se;
  private Stern se1;
  private Stern se2;
  private Stern se3;
 
  private Smiley sm;
  private Smiley sm1;
  private Smiley sm2;
  private Smiley sm3;             
 
  private LUhr uhr;
 
  public Wurfbude6() {
    bs = new Bildschirm();
    st = new Buntstift();
   
    zk = new Zielkreuz(100,350);           //zk für lv 1
    zk2 = new Zielkreuz(100,600);
   
    zk3 = new Zielkreuz(400,300);             //zk für Startbildschirm
   
    szk0 = new sZielkreuz(100,350);            //zk für lv 2                                                       
    szk1 = new sZielkreuz(100,600);                                             
   
    fl = new Flasche(400,360);          
    fl2 = new Flasche(500,380);         
    fl3 = new Flasche(400,610);       
    fl7 = new Flasche (500,630);                 //fl für lv 1
   
    fl4 = new Flasche(800,400);                         //fl für Startbildschirm
   
    fl5 = new Flasche(400,400);                        // fl für lv 2
    fl6 = new Flasche(500,370);
    fl8 = new Flasche (400,650);
    fl9 = new Flasche (500,620);
   
    ms = new Maus();
    ts = new Tastatur();
   
    se = new Stern(200,350);                        //Stern lv 1
    se2 = new Stern(900,600);
   
    se1 = new Stern(900,350);
    se3 = new Stern(200,600);                  //Stern lv 2
   
    uhr = new LUhr();
   
    sm = new Smiley(590,350);                  //Smiley für lv 1
    sm1 = new Smiley(590,600);
   
    sm2 = new Smiley(590,350);                   //Smiley für lv 2
    sm3 = new Smiley(590,600);
   
    startmenu();
    starte();
  }
  public void warte(){
   
  }
 
  public void startmenu(){
    bs.setzeFarbe(Farbe.SCHWARZ);
   
    st.bewegeBis(200,600);
    st.setzeFarbe(Farbe.GRUEN);
    st.setzeSchriftGroesse(60);
    st.schreibeText("Start");
    st.bewegeBis(600,600);
    st.setzeSchriftGroesse(30);
    st.schreibeText("Anleitung:");
    st.setzeSchriftGroesse(20);
    st.bewegeBis(400,630);
    st.schreibeText("Spieler 1 soll durch drücken der Maus mit dem oberen Zielkreuz und Spieler 2");
    st.bewegeBis(400,660);
    st.schreibeText("durch drücken der Tastatur mit dem unteren Zielkreuz verschiedene Symbole treffen.");
    zk3.zeichne();
    fl4.zeichne();
    st.bewegeBis(400,100);
    st.setzeSchriftGroesse(80);
    st.schreibeText("Wurfbude");
    while (true) {
     
     
      while (!ms.istGedrueckt()) {
        warte();
       
      } // end of while
      if (((180<ms.hPosition())&&(ms.hPosition()<300))&&((580<ms.vPosition())&&(ms.vPosition()<700))) {                    //Überprüfen der Position der Maus
        starte();
       
      } // end of if
     
     
    }
   
  }  
 
 
 
  public void starte() {
     bs.loescheAlles();                                         //level 1 starten
     bs.setzeFarbe(Farbe.rgb(176,226,255));
  
    fl.zeichne();
    fl2.zeichne();
    fl3.zeichne();
    fl7.zeichne();
    se.zeichne();
    se2.zeichne();
    sm.zeichne();
    sm1.zeichne();
   
    zk.zeichne();
    zk2.zeichne();
   
    int punkte = 0;                                   // Punktestand von Spieler 1 wird auf null gesetzt
    int punkte2 = 0;                                  // Punktestand von Spieler 2 wird auf null gesetzt
   
    while (punkte<60&punkte2<60) {
      int spieler = 0;
      boolean spielläuft = true;
      while (spielläuft) {
        zk.bewege();
        zk2.bewege();
        if ((zk.gibxPos()>1000)&&(zk2.gibxPos()>1000)) {
          zk.anDenAnfang();
          zk2.anDenAnfang();                                            //bis hier bewegen der Zielkreuze
        }
       
        if (ms.istGedrueckt()) {
          while (ms.istGedrueckt()) {
            spieler = 1;
          } // end of while
          spielläuft = false;
         
        } // end of if
       
        if (ts.wurdeGedrueckt()) {
          ts.weiter();
          spielläuft = false;
          spieler = 2;
        } // end of if
      } // end of while
     
     
     
     
      if (spieler==1) {
       
       
        if (((zk.gibxPos()>400)&& (zk.gibxPos()<455))||((zk.gibxPos()>500)&&(zk.gibxPos()<555))) {         
          punkte = punkte + 10;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);                                                                            //Trefferanalyse von zk
        }
        else{
          punkte = punkte - 5;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);  
        }                                          // end of if
       
        if ((zk.gibxPos()>220)&& (zk.gibxPos()<250)){
          punkte = punkte + 20;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);   
        } // end of if
       
        if ((zk.gibxPos()>560)&& (zk.gibxPos()<620)){
          punkte = punkte - 20;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);   
        } // end of if
      }
     
      if (spieler==2) {
       
       
        if (((zk2.gibxPos()>400)&&(zk2.gibxPos()<455))||((zk2.gibxPos()>500)&&(zk2.gibxPos()<555))) {                  //ver2
          punkte2 = punkte2 + 10;
          st.bewegeBis(1100,500);                                                                                         //530?
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);                                                                                //Trefferanalyse von zk2
        } // end of if
        else{
          punkte2 = punkte2 - 5;
          st.bewegeBis(1100,500);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2); 
        } 
       
        if ((zk.gibxPos()>560)&& (zk.gibxPos()<620)){
          punkte2 = punkte2 - 20;
          st.bewegeBis(1100,500);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);   
        } // end of if                                                                                      
     
     
        if ((zk.gibxPos()>920)&& (zk.gibxPos()<950)){
          punkte2 = punkte2 + 20;                                                       //punkte2
          st.bewegeBis(1100,500);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);   
        } // end of if                                                                 //punkte2???
       }
       }
   
   
    bs.loescheAlles();
    bs.setzeFarbe(Farbe.SCHWARZ);
    st.setzeFarbe(Farbe.GRUEN);
    st.setzeSchriftGroesse(60);
    st.bewegeBis(200,350);
    if (punkte==60) {
     
      st.schreibeText("Spieler 1 hat Level 1 gewonnen");
      uhr.warte(5000);
    }else {
      st.schreibeText("Spieler 2 hat Level 1 gewonnen");
      uhr.warte(5000);                                                //ver
    } // end of if-else
   
   
   
    bs.loescheAlles();
    bs.setzeFarbe(Farbe.rgb(176,226,255));
    st.hoch();
   
    fl5.zeichne();
    fl6.zeichne();
    fl8.zeichne();
    fl9.zeichne();
    se1.zeichne();
    se3.zeichne();
    sm2.zeichne();
    sm3.zeichne();
   
    szk0.zeichne();                                  //ver
    szk1.zeichne();                                     //ver
   
   
   
    while (punkte<130 & punkte2<130) {
      int spieler = 0;
      boolean spielläuft = true;
      while (spielläuft) {
        szk0.bewege();
        szk1.bewege();
        if ((szk0.gibxPos()>1000)&&(szk1.gibxPos()>1000)) {                             //ver45
          szk0.anDenAnfang();
          szk1.anDenAnfang();                                            //bis hier bewegen der Zielkreuze
        }
        else {
         
        }
        if (ms.istGedrueckt()) {
          while (ms.istGedrueckt()) {
            spieler = 1;
          } // end of while
          spielläuft = false;
        } // end of if
       
        if (ts.wurdeGedrueckt()) {
          ts.weiter();
          spielläuft = false;
          spieler = 2;
        } // end of if
      } // end of while
     
      if (spieler==1) {
       
       
        if (((szk0.gibxPos()>400)&& (szk0.gibxPos()<455))||((szk0.gibxPos()>500)&&(szk0.gibxPos()<555))) {          //von hier     //ver4
          punkte = punkte + 10;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);                                                                            //Trefferanalyse von zk
        }
        else{
          punkte = punkte - 5;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte); 
        }                                         // end of if
       
        if ((szk0.gibxPos()>920)&& (szk0.gibxPos()<950)){
         
          punkte = punkte + 20;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);         
          }
         
        if ((szk0.gibxPos()>560)&& (szk0.gibxPos()<620)){
          punkte = punkte - 20;
          st.bewegeBis(1100,250);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,350);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte);   
          } // end of if
        }
     
      if (spieler==2) {
       
       
        if (((szk1.gibxPos()>400)&&(szk1.gibxPos()<455))||((szk1.gibxPos()>500)&&(szk1.gibxPos()<555))) {                     //ver5
          punkte2 = punkte2 + 10;
          st.bewegeBis(1100,500);                                                                                           //530?
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);                                                                                //Trefferanalyse von zk2
        } // end of if
        else{
          punkte2 = punkte2 - 5;
          st.bewegeBis(1100,500);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2); 
        }                                                                                        
        
       
        if ((szk1.gibxPos()>220)&&(szk1.gibxPos()<250)) {                           //220250!!!!!!!!!!!!!!!!
         
          punkte2 = punkte2 + 20;
          st.bewegeBis(1100,500);                                                                                         
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);                                                                                //Trefferanalyse von zk2
        } // end of if
        
        if ((szk1.gibxPos()>560)&& (szk1.gibxPos()<620)){
          punkte2 = punkte2 - 20;
          st.bewegeBis(1100,500);
          st.setzeFarbe(Farbe.rgb(175,226,255));
          st.setzeFuellMuster(1);
          st.zeichneRechteck(200,200);
          st.bewegeBis(1100,600);
          st.setzeFarbe(Farbe.SCHWARZ);
          st.schreibeZahl(punkte2);   
          } // end of if
        }
        }
   
    bs.loescheAlles();
    bs.setzeFarbe(Farbe.SCHWARZ);
    st.setzeFarbe(Farbe.GRUEN);
    st.bewegeBis(200,350);
    if (punkte==130) {
     
      st.schreibeText("Herzlichen Glückwunsch");
      st.bewegeBis(450,450);
      st.schreibeText("Spieler 1");
    }else {
      st.schreibeText("Herzlichen Glückwunsch");
      st.bewegeBis(450,450);
      st.schreibeText("Spieler 2 ");
    } // end of if-else
   
   
    }
 
 
  public static void main(String[]args) {
    new Wurfbude6();
  }
 
  }
 
Der Code wirft um ehrlich zu sein mehr Fragen als Antworten auf.
1. Was sind die einzelnen Klassen Bildschirm, Flaschen, Stern, ... und woher kommen diese? Sind das ganz GUI-Komponenten?
2. Du hast relativ am Anfang in deinem Code eine Endlosschleife eingebaut in der, wenn eine bestimmte Bedingung erfüllt wird, die Methode starte() aufgerufen werden soll. Hast du denn mal geschaut, ob diese überhaupt aufgerufen wird.
3. Wenn ich das richtig sehe, soll die Methode starte() deine "Zielobjekte" anzeigen .. du rufst auch von allen Objekten die Methode zeichne() auf - aber was macht diese? Irgendwo müssten die einzelnen Komponenten ja mal zusammengefügt werden. Momentan scheint es, als würden "Bildschirm" und "Zielobjekte" nur nebeneinander existieren und nichts von einander wissen.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben