Hallo Zusammen,
Ich habe eine Frage, und zwar sind wir wie viele andere Schüler im Informatikunterricht dabei, ein Dartspiel zu entwerfen.
Ich habe bis jetzt alles sehr gut hinbekommen, und es funktioniert auch super. Allerdings haben wir bis jetzt nur eindimensional gespielt, und somit ist der Pfeil immer bei der gleichen Vertikallinie stecken geblieben.
Nun sollen wir den Pfeil überall auf der Scheibe fallen Lassen, und dies ist ja auch noch ok...
Jedoch soll ja auch eine Punktzahl angezeigt werden, wobei ein Punktabstand zwischen dem "Bullseye" und der Pfeilspitze berechnet werden soll. Zwar ist dies Möglich mit dem Satz des Pythagoras (a²+b²=c²), aber ich kann dies nicht so gut umsetzen in Bluej... hat jemand einen Vorschlag?
Bis jetzt sieht mein Kode so aus:
Alles anzeigen
Danke im Vorraus...
Ich habe eine Frage, und zwar sind wir wie viele andere Schüler im Informatikunterricht dabei, ein Dartspiel zu entwerfen.
Ich habe bis jetzt alles sehr gut hinbekommen, und es funktioniert auch super. Allerdings haben wir bis jetzt nur eindimensional gespielt, und somit ist der Pfeil immer bei der gleichen Vertikallinie stecken geblieben.
Nun sollen wir den Pfeil überall auf der Scheibe fallen Lassen, und dies ist ja auch noch ok...
Jedoch soll ja auch eine Punktzahl angezeigt werden, wobei ein Punktabstand zwischen dem "Bullseye" und der Pfeilspitze berechnet werden soll. Zwar ist dies Möglich mit dem Satz des Pythagoras (a²+b²=c²), aber ich kann dies nicht so gut umsetzen in Bluej... hat jemand einen Vorschlag?
Bis jetzt sieht mein Kode so aus:
Quellcode
- import sum.kern.*;
- /**
- * @author dadoc
- * @version 2012.11.06
- */
- public class DartTheGame
- {
- // Objekte
- Bildschirm derBildschirm;
- Stift meinStift;
- Buntstift meinAndererStift;
- Maus dieMaus;
- // Konstruktor
- public DartTheGame()
- {
- derBildschirm = new Bildschirm(500,300);
- meinStift = new Stift();
- meinAndererStift = new Buntstift();
- dieMaus = new Maus();
- this.fuehreAus();
- }
- // Dienste
- public void zeichneScheibe()
- {
- //Einzelne Kreise
- meinAndererStift.setzeFarbe(0);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(50);
- meinAndererStift.setzeFarbe(6);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(46);
- meinAndererStift.setzeFarbe(10);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(30);
- meinAndererStift.setzeFarbe(6);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(26);
- meinAndererStift.setzeFarbe(5);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(10);
- meinAndererStift.setzeFarbe(10);
- meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
- meinAndererStift.zeichneKreis(5);
- meinAndererStift.setzeFarbe(0);
- meinAndererStift.setzeFuellmuster(Muster.DURCHSICHTIG);
- // Punkteabstände
- meinAndererStift.runter();
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.bewegeUm(-100);
- meinAndererStift.bewegeUm(50);
- meinAndererStift.dreheUm(342);
- //Kreissegmente
- meinAndererStift.hoch();
- }
- public void zeichneSegmentSchwarz()
- {
- do
- { meinAndererStift.setzeFarbe(0);
- meinAndererStift.bewegeBis(400,150);
- meinAndererStift.dreheBis(0);
- meinAndererStift.runter();
- meinAndererStift.bewegeUm(26);
- meinAndererStift.bewegeUm(-26);
- meinAndererStift.dreheUm(0.5);
- }while(meinAndererStift.hPosition()<160);
- }
- public void zeichnePfeil()
- {
- meinStift.runter();
- meinStift.zeichneKreis(2);
- meinStift.bewegeUm(-30);
- meinStift.bewegeUm(30);
- meinStift.hoch();
- }
- public void radierePfeil()
- {
- meinStift.radiere();
- this.zeichnePfeil();
- meinStift.normal();
- }
- public void PfeilFaellt()
- {
- this.zeichnePfeil();
- this.radierePfeil();
- meinStift.bewegeUm(0.05);
- }
- public void PfeilFliegt()
- {
- this.zeichnePfeil();
- this.radierePfeil();
- meinStift.bewegeUm(0.1);
- }
- public void PfeilDreht()
- {
- this.zeichnePfeil();
- this.radierePfeil();
- meinStift.bewegeUm(-30);
- meinStift.dreheUm(0.1);
- meinStift.bewegeUm(30);
- }
- public void fuehreAus()
- {
- // Aktionsteil
- meinAndererStift.bewegeBis(400,150);
- this.zeichneScheibe();
- meinStift.bewegeBis(50,0);
- meinStift.dreheUm(270);
- this.zeichneSegmentSchwarz();
- do
- {
- this.PfeilFaellt();
- }
- while(!dieMaus.istGedrueckt());
- do
- {
- this.PfeilDreht();
- }
- while(dieMaus.istGedrueckt());
- do
- {
- this.PfeilFliegt();
- }
- while(meinStift.hPosition()<400);
- if(meinStift.hPosition()>399)
- {
- this.zeichneScheibe();
- this.zeichnePfeil();
- // Bewertung
- if((meinStift.vPosition() < 90) || (meinStift.vPosition() > 210))
- {
- meinAndererStift.bewegeBis(100,150);
- meinAndererStift.schreibeText("Leider daneben...");
- }
- else
- {
- if((meinStift.vPosition() < 90) || (meinStift.vPosition() > 210))
- {
- meinAndererStift.bewegeBis(100,170);
- meinAndererStift.schreibeText("Knapp daneben ist auch vorbei! :)");
- }
- else
- {
- if((meinStift.vPosition() < 135) || (meinStift.vPosition() > 165))
- {
- meinAndererStift.bewegeBis(100,170);
- meinAndererStift.schreibeText("SUPER! Getroffen! 5 Punkte");
- }
- else
- {
- if((meinStift.vPosition() < 140) || (meinStift.vPosition() > 160))
- {
- meinAndererStift.bewegeBis(100,170);
- meinAndererStift.schreibeText("SUPER! Getroffen! 10 Punkte");
- }
- else
- {
- if((meinStift.vPosition() < 145) || (meinStift.vPosition() > 155))
- {
- meinAndererStift.bewegeBis(100,170);
- meinAndererStift.schreibeText("Sehr Gut!! Fast in die Mitte! 20 Punkte :)");
- }
- else
- {
- meinAndererStift.bewegeBis(100,170);
- meinAndererStift.schreibeText("PERFEKT!! MITTE!! 25 Punkte! :)");
- }
- }
- }
- }
- }
- }
- // Aufraeumen
- meinStift.gibFrei();
- meinAndererStift.gibFrei();
- derBildschirm.gibFrei();
- }
- }
Danke im Vorraus...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von dadoc ()