Rechteck wird nicht angezeigt

MarySunflight

Neues Mitglied
Hallo, hier der Typische Schulanfänger... Wir sollen einen "Dartsimulator" per BlueJ programmieren, jedoch werden mir die Rechtecke, welche als Dartscheibe fungieren sollen, nicht angezeigt. Hier der Code:
Screenshot 2022-02-17 202132.pngScreenshot 2022-02-17 202212.png


Screenshot 2022-02-17 202243.png

Was funktioniert da nicht, dass die Rechtecke nicht angezeigt werden?
 
Code bitte nicht als Bild sondern als Text einfügen, dazu hier im Editor oben links auf </> klicken.

Mal davon abgesehen, dass man hier auch nicht sieht, wo Rechtecke erzeugt würden: Deine Methoden machen nichts, außer die übergebenen Parameter zu überschreiben. Das hat allerdings keinerlei Auswirkung, da Parameter immer Kopien sind.
 
Okay, vielen Dank für den Tipp, hier der Code als Text:


Java:
//genutzte Klassen werden importiert
import sas.*;
import java.awt.Color;
class Pfeilwurf3
{
   //Attribute der Klasse Pfeilwurf3
   private View view;
   private Sprite pfeil;
   private Rectangle spielfeld;
   private Rectangle zielGruen;
   private Rectangle zielGelb;
   private Rectangle zielRot;
  
   Pfeilwurf3(){
     view = new View(600, 400, "Dart-Spiel");
     spielfeld = new Rectangle(0,0,600,400, Color.BLACK);
     erstellePfeil();
   }
   //Beginn der Auflistung aller Methoden der Klasse Pfeilwurf3
   void fuehreAus(){
     while (!view.keyPressed('w')){
         pfeil.move(0,5);
         view.wait(10);
         if (!spielfeld.contains(pfeil)) {
             pfeil.moveTo(10,5);
          }
     }
     while (view.keyPressed('w')){
         pfeil.move(45);
         view.wait(10);
     }   
     while (spielfeld.contains(pfeil)&&!pfeil.intersects(zielGruen)){
         pfeil.move(5,0);
         view.wait(10);
     }
       if (pfeil.intersects(zielGruen))
     {
         new Text(300,10,"Treffer",Color.PINK);
        }
     else
     {
         new Text(300,10,"Leider daneben",Color.PINK);
     }
    }
    
   private void zielGruen(double xp, double yp, double width, double height, Color color)
    {
       xp=590;
       yp=125;
       width=10;
       height=150;
       color=new Color(0,255,0);
    }
   private void zielGelb(double xp, double yp, double width, double height, Color color)
    {
       xp=590;
       yp=155;
       width=10;
       height=90;
       color=new Color(255,255,0);
    }
    private void zielRot(double xp, double yp, double width, double height, Color color)
    {
       xp=590;
       yp=185;
       width=10;
       height=30;
       color=new Color(255,0,0);
    }
    
    /**
    * Diese Methode ist dafuer zustaendig ein neues Sprite-Objekt zu erzeugen. Das ist ein Objekt, welches aus mehreren anderen Objekten besteht.
    * Dadurch ist es moeglich ein Dreieck und ein Rechteck hinzu zu fuegen, um einen Pfeil zu erstellen.
    */
   public void erstellePfeil()
   {
     /**
      * Erzeugt ein neues Sprite-Objekt, das aus dem angegebenen Shapes-Objekt besteht. Mit dem
      * Auftrag add können dem Sprite-Objekt weitere Grafik-Objekt hinzugefügt werden. Die Richtung erhält den Wert 90
 
Ja, wie gesagt: wo werden denn die Rechtecke zielGruen, zielGelb, zielRot erstellt? Wo werden die Methoden zielGruen, zielGelb und zielRot aufgerufen? Und: die Methoden haben keinerlei Auswirkung.
 

Zurück
Oben