BlueJ Spiel

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo alle zusammen :)
    Also ich will ein spiel programieren, welches die grundlage eines egoshooter spieles sein könnte.
    Mein spiel: es fliegen drei unterschiedlich große und schnelle kreise durch das spielbild. mit der maustaste soll man die kreise anklicken,
    dann sollen sie verschwinden und wo anders wieder auftauchen(zufällig). für die unterschiedlichen kreise sollen dann punkte vergeben werden.
    Also eigentlich ganz einfach :) aber ich kriege es nicht hin.
    Aber so ganz faul bin ich auch nicht!
    ich habe die kreise schon animiert und das" getroffen" attribut programiert (sagt man das so xD),
    d.h. das programm erkennt nun ob ein kreis getroffen wurde oder nicht.

    Also übrig bleibt noch: - kreise nach einem "true"Klick verschwinden lassen und irgendwo zufällig wieder auftauchen lassen.
    - pro "true"KLick punkte gutschreiben

    Hier die quellcodes:

    SuMAnwendung

    import sum.ereignis.*;
    import sum.komponenten.*;
    import sum.werkzeuge.*;

    /**
    * @author
    * @version
    */
    public class SuMAnwendung extends EBAnwendung
    {
    // Bezugsobjekte
    Huhn h1,h2,h3;
    // Attribute

    // Konstruktor
    public SuMAnwendung()
    {
    super(400,400);
    h1=new Huhn(100,90,10,1,hatBildschirm);
    h2=new Huhn(130,100,20,3,hatBildschirm);
    h3=new Huhn(130,100,5,6,hatBildschirm);
    }

    // Dienste
    public void bearbeiteLeerlauf()
    {
    h1.fliegen();
    h2.fliegen();
    h3.fliegen();
    }

    public void bearbeiteMausDruck(int pWoH, int pWoV)
    {
    System.out.println("Mausposition("+pWoH+"|"+pWoV+")");
    h1.getroffen(pWoH,pWoV);
    h2.getroffen(pWoH,pWoV);
    h3.getroffen(pWoH,pWoV);
    }


    }


    Klasse: Huhn


    import sum.ereignis.*;
    /**
    * @author
    * @version
    */
    public class Huhn
    {
    // Bezugsobjekte
    private Buntstift s= new Buntstift();

    // Attribute
    private double x;
    private double y;
    private int radius;
    private double tempo;
    private Bildschirm kenntBildschirm;

    // Konstruktor
    public Huhn(double px, double py, int pradius, double ptempo, Bildschirm pBildschirm)
    {
    x=px; y=py; radius=pradius; tempo=ptempo;
    s.bewegeBis(x,y);
    this.zeichnen();
    kenntBildschirm=pBildschirm;
    }

    // Dienste

    private void zeichnen()
    {
    s.zeichneKreis(radius);
    }

    private void loeschen()
    {
    s.radiere();
    this.zeichnen();
    s.normal();
    }

    private void bewegen()
    {
    x=x+tempo;
    s.bewegeBis(x,y);
    if(x>kenntBildschirm.breite())
    x=0;
    }

    public void fliegen()
    {
    this.loeschen();
    this.bewegen();
    this.zeichnen();
    }

    public boolean getroffen(int pMausH, int pMausV)
    {
    double dx = s.hPosition()-pMausH;
    double dy = s.vPosition()-pMausV;

    System.out.println("Getroffen: "+(radius*radius>dx*dx+dy*dy));

    if(radius*radius>dx*dx+dy*dy)
    return false; //nicht getroffne
    else
    return true; //getroffen

    }
    }




    die kreise heißen huhn ;-)

    könnt ihr mir helfen????
  • Mangels Zeit habe ich mir den Quellcode nicht angeschaut sondern nur deine Ausführung oben.

    Also du hast die Kreise animiert d.h. die fliegen bei dir schon durch die gegend und es wirkt bemerkt, wenn du sie triffst?
    Na dann hast du doch schon das schwierigste hinter dir.

    Wenn du nun einen triffst, schaust du wieviel Punkte dieser bringt und addierst dir diese zu den schon erhaltenen Punkten.
    Dann setzt du diesen Kreis an eine andere stelle und fertig ;)

    Oder versteh ich da etwas falsch? (mir scheint es fast so ;) )


    Lg!