pong:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
pong:start [2023/01/10 06:47] – [Wann stößt der Schläger unten an?] Martin Pabst | pong:start [2023/01/16 09:20] (aktuell) – [Klassendiagramm] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Gemeinsames Projekt: Pong ====== | ====== Gemeinsames Projekt: Pong ====== | ||
- | {{ :projects:pong:pong.png? | + | {{ :pong:pasted: |
<WRAP center round info 50%> | <WRAP center round info 50%> | ||
Das 1972 von Atari veröffentlichte Pong war eines der ersten Computerspiele, | Das 1972 von Atari veröffentlichte Pong war eines der ersten Computerspiele, | ||
Zeile 18: | Zeile 18: | ||
class Schläger extends Rectangle { | class Schläger extends Rectangle { | ||
- | | + | private |
- | | + | private |
| | ||
Zeile 72: | Zeile 72: | ||
===== Programmierung des Balls ===== | ===== Programmierung des Balls ===== | ||
+ | ==== Klassendiagramm ==== | ||
+ | Der Ball muss die zwei Schläger " | ||
+ | {{ : | ||
+ | |||
+ | Daher erhält die Klasse Ball die beiden Attribute '' | ||
+ | <code java> | ||
+ | class Ball extends Rectangle { | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | | ||
+ | super(x - breite / 2, y - breite / 2, breite, breite); | ||
+ | setFillColor(Color.white); | ||
+ | this.schlägerLinks = schlägerLinks; | ||
+ | this.schlägerRechts = schlägerRechts; | ||
+ | |||
+ | setzeZufallsGeschwindigkeit(); | ||
+ | } | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
{{ youtube> | {{ youtube> | ||
< | < | ||
Zeile 84: | Zeile 111: | ||
class Schläger extends Rectangle { | class Schläger extends Rectangle { | ||
- | | + | private |
- | | + | private |
| | ||
Zeile 117: | Zeile 144: | ||
class Ball extends Rectangle { | class Ball extends Rectangle { | ||
- | | + | private |
- | | + | private |
- | | + | private |
- | | + | private |
Zeile 188: | Zeile 215: | ||
=== Wann stößt der Ball oben/unten an? Wann verlässt er links/ | === Wann stößt der Ball oben/unten an? Wann verlässt er links/ | ||
Hier eine erläuternde Grafik zu diesen Fragen: | Hier eine erläuternde Grafik zu diesen Fragen: | ||
- | {{ :projects: | + | {{ : |
===== Hauptprogramm, | ===== Hauptprogramm, | ||
+ | ==== 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 '' | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | |||
{{ youtube> | {{ youtube> | ||
< | < | ||
Zeile 200: | Zeile 234: | ||
class Pong extends Actor { | class Pong extends Actor { | ||
- | Text punkteanzeige; | + | private |
- | Text großeAnzeige; | + | private |
- | int punkteLinks = 0; | + | private |
- | int punkteRechts = 0; | + | private |
- | | + | private |
- | | + | private |
- | | + | private |
- | Ball ball; | + | private |
| | ||
Zeile 288: | Zeile 322: | ||
zustand = neuerZustand; | zustand = neuerZustand; | ||
+ | } | ||
+ | |||
+ | | ||
+ | return zustand; | ||
} | } | ||
} | } | ||
Zeile 295: | Zeile 333: | ||
class Schläger extends Rectangle { | class Schläger extends Rectangle { | ||
- | | + | private |
- | | + | private |
- | | + | private |
| | ||
Zeile 330: | Zeile 368: | ||
class Ball extends Rectangle { | class Ball extends Rectangle { | ||
- | | + | private |
- | | + | private |
- | | + | private |
- | | + | private |
- | Pong pong; | + | private |
| | ||
Zeile 350: | Zeile 387: | ||
| | ||
| | ||
- | if(pong.zustand | + | if(pong.getZustand() |
| | ||
} | } |
pong/start.1673333233.txt.gz · Zuletzt geändert: 2023/01/10 06:47 von Martin Pabst