Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:mittelstufe:breakout:breakout05:start [12.10.2023 19:20] – Frank Schiebel | faecher:informatik:mittelstufe:breakout:breakout05:start [12.10.2023 19:25] (aktuell) – [Reflexion] Frank Schiebel | ||
---|---|---|---|
Zeile 30: | Zeile 30: | ||
Es ist umständlich, | Es ist umständlich, | ||
Füge in deine Welt das Paddle, einige Blöcke und einen Ball ein. Klicke dann mit der rechten Maustaste auf die Welt und wähle "Save the world" | Füge in deine Welt das Paddle, einige Blöcke und einen Ball ein. Klicke dann mit der rechten Maustaste auf die Welt und wähle "Save the world" | ||
+ | |||
+ | ===== Reflexion ===== | ||
+ | |||
+ | Der Ball soll nun am Paddel reflektiert werden, falls er es trifft. Wenn ein Actor-Objekt auf ein zweites Actor-Objekt trifft, erhält man das zweite Actor-Objekt mit der Actor-Methode '' | ||
+ | |||
+ | Falls diese beiden Objekte sich nicht überlappen, | ||
+ | |||
+ | Der zugehörige Quelltextschnipsel, | ||
+ | <code java> | ||
+ | if (getOneIntersectingObject(Paddel.class) != null) { | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Dann soll sich die Richtung des Balls so ändern, als wenn er am unteren Spielfeldrand reflektiert worden wäre. | ||
+ | |||
+ | Der Parameter '' | ||
+ | |||
+ | |||
+ | Erstelle eine neue Methode '' | ||
+ | |||
+ | Nun fehlt nur noch die Reflexion des Balls an den Blöcken und das Entfernen des getroffenen Blocks. Erstelle dazu eine Methode '' | ||
+ | <code java> | ||
+ | private void reflektiereBlock() { | ||
+ | Actor block = getOneIntersectingObject(Block.class); | ||
+ | if (block != null) { | ||
+ | dy = -dy; | ||
+ | getWorld().removeObject(block); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Im Unterschied zu '' | ||
+ | |||
+ | Mit dem Methodenaufruf '' | ||