Benutzer-Werkzeuge

Webseiten-Werkzeuge


pong:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pong:start [2023/01/16 07:18] – [Gemeinsames Projekt: Pong] Martin Pabstpong:start [2023/01/16 09:20] (aktuell) – [Klassendiagramm] Martin Pabst
Zeile 1: Zeile 1:
 ====== Gemeinsames Projekt: Pong ====== ====== Gemeinsames Projekt: Pong ======
-{{:pong:pasted:20230116-081801.png?200|Quelle: https://commons.wikimedia.org/wiki/File:Pong.png}}+{{ :pong:pasted:20230116-081801.png?200|Quelle: https://commons.wikimedia.org/wiki/File:Pong.png}}
 <WRAP center round info 50%> <WRAP center round info 50%>
 Das 1972 von Atari veröffentlichte Pong war eines der ersten Computerspiele, [[https://de.wikipedia.org/wiki/Pong|hier mehr zu seiner Geschichte.]] \\ \\  Das 1972 von Atari veröffentlichte Pong war eines der ersten Computerspiele, [[https://de.wikipedia.org/wiki/Pong|hier mehr zu seiner Geschichte.]] \\ \\ 
Zeile 72: Zeile 72:
  
 ===== Programmierung des Balls ===== ===== Programmierung des Balls =====
 +==== Klassendiagramm ====
 +Der Ball muss die zwei Schläger "kennen", um feststellen zu können, ob er einen davon berührt und entsprechend seine Geschwindigkeit ändern muss.
 +{{ :pong:pasted:20230116-083656.png }}
 +
 +Daher erhält die Klasse Ball die beiden Attribute ''schlaegerLinks'' und ''schlaegerRechts''. Sie werden im Konstruktor mit den Referenzen der beiden ''Schlaeger''-Objekte belegt, die an den Konstruktor übergeben werden:
 +<code java>
 +class Ball extends Rectangle {
 +   
 +   private double vx;
 +   private double vy;
 +   private Schläger schlägerLinks;
 +   private Schläger schlägerRechts;
 +
 +
 +   Ball(double breite, double x, double y, Schläger schlägerLinks, Schläger schlägerRechts) {
 +      super(x - breite / 2, y - breite / 2, breite, breite);
 +      setFillColor(Color.white);
 +      this.schlägerLinks = schlägerLinks;
 +      this.schlägerRechts = schlägerRechts;
 +
 +      setzeZufallsGeschwindigkeit();
 +   }
 +   
 +   usw...
 +}
 +</code>
 +
 {{ youtube>DIKP2A2S2x8?large }} {{ youtube>DIKP2A2S2x8?large }}
 <HTML> <HTML>
Zeile 190: Zeile 217:
 {{ :pong:pasted:20230110-074959.png?500 }} {{ :pong:pasted:20230110-074959.png?500 }}
 ===== Hauptprogramm, Punkteanzeige, Startbildschirm, Game over ===== ===== Hauptprogramm, Punkteanzeige, Startbildschirm, Game over =====
 +==== Klassendiagramm ====
 +Das Hauptprogramm muss bei der Anzeige des Startbildschirms den Ball und die Schläger ausblenden und beim Starten des Spiels wieder einblenden, den Ball auf seine Startposition setzen usw. . Daher muss es sowohl den Ball als auch die beiden Schläger kennen. Es ist günstig, die Schläger und den Ball direkt im Konstruktor der Klasse ''Pong'' zu erstellen.
 +{{ :pong:pasted:20230116-084004.png }}
 +
 +
 +
 +
 {{ youtube>V0LthmW7Qqo?large }} {{ youtube>V0LthmW7Qqo?large }}
 <HTML> <HTML>
pong/start.1673853490.txt.gz · Zuletzt geändert: 2023/01/16 07:18 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki