pong:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
pong:start [2023/01/10 06:44] – angelegt 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 57: | Zeile 57: | ||
| | ||
- | {{ :projects: | + | {{ : |
==== Wann stößt der Schläger oben an? ==== | ==== Wann stößt der Schläger oben an? ==== | ||
Am oberen Rand des Grafikbereichs stößt der Schläger dann an, wenn '' | Am oberen Rand des Grafikbereichs stößt der Schläger dann an, wenn '' | ||
Zeile 65: | Zeile 65: | ||
==== Wann stößt der Schläger unten an? ==== | ==== Wann stößt der Schläger unten an? ==== | ||
- | {{:projects: | + | {{: |
Am unteren Rand des Grafikbereichs stößt der Schläger dann an, wenn '' | Am unteren Rand des Grafikbereichs stößt der Schläger dann an, wenn '' | ||
< | < | ||
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.1673333052.txt.gz · Zuletzt geändert: 2023/01/10 06:44 von Martin Pabst