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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...