klassen2:inheritance:flyingrectangle:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
klassen2:inheritance:flyingrectangle:start [2020/05/03 10:19] – [1. Grafikausgabe] Martin Pabst | klassen2:inheritance:flyingrectangle:start [2020/05/03 12:10] – [3. Animation] Martin Pabst | ||
---|---|---|---|
Zeile 57: | Zeile 57: | ||
* (left, top): Koordinaten der linken oberen Ecke | * (left, top): Koordinaten der linken oberen Ecke | ||
* width, heigth: Breite und Höhe des Rechtecks | * width, heigth: Breite und Höhe des Rechtecks | ||
+ | == Beispiel == | ||
+ | Im folgenden zeichnen wir ein Rechteck auf den Bildschirm, färben es rot und drehen es um 70° gegen den Uhrzeigersinn: | ||
+ | < | ||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(800, 800); | ||
+ | Rectangle r = new Rectangle(50, | ||
+ | r.setFillColor(Color.red); | ||
+ | r.rotate(70); | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== 2. Erweitern der Klasse Rectangle ==== | ||
+ | Wir definieren jetzt eine Unterklasse '' | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(800, 800); | ||
+ | new FlyingRectangle(); | ||
+ | |||
+ | class FlyingRectangle extends Rectangle { | ||
+ | |||
+ | | ||
+ | // Rufe den Konstruktor der Oberklasse auf und setze Position und Größe: left: 360, top: 720, width: 80, height: 80 | ||
+ | super(360, 720, 80, 80); | ||
+ | | ||
+ | // setze eine zufällige Farbe und Durchsichtigkeit | ||
+ | setFillColor(Math.round(Math.random() *(256 *256 * 256 - 1)), Math.random()*0.8+0.2); | ||
+ | } | ||
+ | |||
+ | }</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 3. Animation ==== | ||
+ | In der Grafikbibliothek von LearnJ besitzt jedes graphische Objekt eine Methode '' | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(800, 800); | ||
+ | new FlyingRectangle(); | ||
+ | |||
+ | class FlyingRectangle extends Rectangle { | ||
+ | |||
+ | | ||
+ | // Rufe den Konstruktor der Oberklasse auf und setze Position und Größe: left: 360, top: 720, width: 80, height: 80 | ||
+ | super(360, 720, 80, 80); | ||
+ | | ||
+ | // setze eine zufällige Farbe und Durchsichtigkeit | ||
+ | setFillColor(Math.round(Math.random() *(256 *256 * 256 - 1)), Math.random()*0.8+0.2); | ||
+ | } | ||
+ | |||
+ | | ||
+ | rotate(4); | ||
+ | } | ||
+ | |||
+ | }</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 4. Fliegen! ==== | ||
+ | Um das Rechteck " | ||
+ | Jetzt müssen wir das Rechteck in der Methode '' | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(800, 800); | ||
+ | while(true) { | ||
+ | new FlyingRectangle(); | ||
+ | } | ||
+ | |||
+ | class FlyingRectangle extends Rectangle { | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | super(360, 760 - 40, 80, 80); | ||
+ | setFillColor(Math.round(Math.random() *(256 *256 * 256 - 1)), Math.random()*0.8+0.2); | ||
+ | |||
+ | vx = Math.random() * 10 - 5; | ||
+ | vy = Math.random() * (-20) - 6; | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | move(vx, vy); | ||
+ | vy = vy + 0.4; | ||
+ | if(getCenterY() > 900) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
klassen2/inheritance/flyingrectangle/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1