Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

in der Schule sollen wir ein einfaches Moorhuhnspiel mit BlueJ erstellen. Ich bin jetzt soweit, dass ich ein Spielfeld und ein Fadenkreuz habe, dass ich mit 4 Tasten bewegen kann. Die 5. Taste (Schießen) ist noch ohne Bedeutung. Ich habe auch schon einen Kreis (Huhn), dass sich aber noch ruckartig bewegt. Wie kann ich jetzt hinzufügen, dass sich der Kreis fließend (zufällig) auf dem Spielfeld (Rechteck) bewegt?

Hier der Quelltext:

Das Spiel:

//Moorhuhnjagd:

import java.util.Random;


public class Spiel  implements ITuWas

{

   Rechteck r;

   Fadenkreuz f;  

   Taste t1;

   Taste t2;

   Taste t3;

   Taste t4;

   Taste t5; 

   Random z;

   int xPos;

   int yPos;

   Kreis k;



    //Konstruktor:

    public Spiel()

    {

        r = new Rechteck(0,0,400,300);

        r.setzeFarbe("gruen");

        f = new Fadenkreuz(10,10);

        t1 = new Taste ("^",250,350,60,50);

        t1.setzeLink(this,0);

        t1.setzeSchriftgroesse(25);

        t2 = new Taste ("<",190,400,60,50);

        t2.setzeLink(this,1);

        t3 = new Taste ("V",250,450,60,50);

        t3.setzeLink(this,2);

        t4 = new Taste (">",310,400,60,50);

        t4.setzeLink(this,3);

        t5 = new Taste ("Schuss",70,400,100,50);

        t5.setzeLink(this,4);

        k = new Kreis(50,50,20);

        k.setzeFarbe("rot");

        Moorhuhn();

    }


    //Methoden:

    //Tu was:


    public void tuWas(int ID)

    {

        switch (ID) 

        {

            case 0:

            f.nachOben();

            break;

            case 1:

            f.nachLinks();

            break;

            case 2:

            f.nachUnten();

            break;

            case 3:

            f.nachRechts();

            break;

        } 

   }


   //Moorhuhn:

   public void Moorhuhn()

   {

       while (true) {

       z = new Random();

       xPos = z.nextInt(359)+1;

       k.setzePosition(xPos,yPos);

       z = new Random();

       yPos = z.nextInt(259)+1;

       k.setzePosition(xPos,yPos);

       StaticTools.warte(5000);}

   }

}
Das Fadenkreuz:
public class Fadenkreuz

{

    int xPosB, yPosB, xB, d, radius;   

    Behaelter b;

    Kreis k;

    Linie ver;

    Linie hor;

    int step;


    public Fadenkreuz(int xPosB, int yPosB)

    {

       this.xPosB = xPosB;

       this.yPosB = yPosB;

       xB = 50;

       d = 5;

       radius = 20;

       b = new Behaelter(xPosB,yPosB,xB,xB);

       k = new Kreis(b,d,d,radius);

       k.setzeFarbe("schwarz");

       k.rand();

       hor = new Linie(b,0,radius+d, xB,radius+d);

       hor.setzeFarbe("schwarz");

       hor.setzeLinienDicke(2);

       ver = new Linie(b,radius+d,0,radius+d, xB);

       ver.setzeFarbe("schwarz");

       ver.setzeLinienDicke(2);

       step = 20;

    }


    public void nachLinks()

    {

        b.setzePosition(xPosB-step, yPosB);

        xPosB = xPosB-step;

    }

    public void nachOben()

    {

        b.setzePosition(xPosB, yPosB-step);

        yPosB = yPosB-step;

    }

    public void nachUnten()

    {

        b.setzePosition(xPosB, yPosB+step);

        yPosB = yPosB+step;

    }   

    public void nachRechts()

    {

        b.setzePosition(xPosB+step, yPosB);

        xPosB = xPosB+step;

    }

}

Viele Grüße,

Manuel

Geschrieben
Wie kann ich jetzt hinzufügen, dass sich der Kreis fließend (zufällig) auf dem Spielfeld (Rechteck) bewegt?

Indem Du die Positionen entsprechend berechnest und zeichnest. Ich würde aber bei so einem Projekt von BlueJ abraten, da man hier mit mehreren Threads arbeiten sollte und das ganze unter BlueJ schwierig wird umzusetzen.

Für die graphische darstellung würde ich zu https://java3d.dev.java.net/ raten, wobei man die 3D Fähigkeit nicht nutzen muss, aber eben die graphische Modellierung sinnvoll verwenden kann

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...