g9:uebungen:spiele9
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
g9:uebungen:spiele9 [2022/06/30 17:07] – Martin Pabst | g9:uebungen:spiele9 [2022/07/01 07:54] (aktuell) – [Spieleprogrammierung in Jgst. 9] Martin Pabst | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Der bayerische Lehrplan der Jahrgangsstufe 9 sieht noch keine Objektreferenzen in Attributen vor. Dies schränkt die Programmierung umfangreicherer Spiele deutlich ein, mit etwas Geschick kann man aber doch zu ansprechenden Ergebnissen kommen. \\ | Der bayerische Lehrplan der Jahrgangsstufe 9 sieht noch keine Objektreferenzen in Attributen vor. Dies schränkt die Programmierung umfangreicherer Spiele deutlich ein, mit etwas Geschick kann man aber doch zu ansprechenden Ergebnissen kommen. \\ | ||
**Strategien: | **Strategien: | ||
- | * Verwendung der **Processing-API**: | + | * Verwendung der **Processing-API**: |
- | * Verwendung der **Graphics and Games-API des Cornelsen-Verlages**: | + | * Verwendung der **Graphics and Games-API des Cornelsen-Verlages**: |
+ | * Verwendung von **[[https:// | ||
* Verwendung der **Graphik-API der Online-IDE**: | * Verwendung der **Graphik-API der Online-IDE**: | ||
Zeile 11: | Zeile 12: | ||
===== Verwendung der Grafikklassen der Online-IDE ===== | ===== Verwendung der Grafikklassen der Online-IDE ===== | ||
- | ==== Beispiel | + | |
+ | ==== 1. Spiel " | ||
+ | <WRAP center round tip 80%> | ||
+ | Auf der Seite [[https:// | ||
+ | Sehr sehenswert! | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 2. Pong ==== | ||
+ | <WRAP center round tip 80%> | ||
+ | Die Klassen Ball und Schläger stehen in keiner Beziehung zueinander: Der Ball erkennt mit der Methode '' | ||
+ | </ | ||
+ | |||
< | < | ||
- | <div class=" | + | <div class=" |
<script type=" | <script type=" | ||
Zeile 25: | Zeile 39: | ||
| | ||
| | ||
- | |||
| | ||
Zeile 41: | Zeile 54: | ||
} | } | ||
} | } | ||
- | |||
} | } | ||
</ | </ | ||
Zeile 82: | Zeile 94: | ||
} | } | ||
} | } | ||
- | |||
void setRandomVelocity() { | void setRandomVelocity() { | ||
Zeile 102: | Zeile 113: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 3. Hunter Game ==== | ||
+ | <WRAP center round tip 80%> | ||
+ | Die Idee zu diesem Spiel kommt von Frau Dr. Siglinde Voss. Ein ähnliches Spiel auf Basis des Processing Frameworks findet sich im Klett-Buch. | ||
+ | \\ \\ | ||
+ | Wie im Beispiel Pong oben haben auch hier die Klassen '' | ||
+ | Das ganze funktioniert natürlich nur, wenn das Prey-Objekt und die Bomben nur dorthin gesetzt werden wo noch nichts liegt. Dies wird durch die Methode '' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new Hunter(); | ||
+ | new Prey(); | ||
+ | </ | ||
+ | <script type=" | ||
+ | class Hunter extends Circle { | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | super(400, 300, 15); | ||
+ | setFillColor(Color.blue); | ||
+ | } | ||
+ | |||
+ | | ||
+ | move(vx, vy); | ||
+ | |||
+ | if(isKeyDown(Key.ArrowRight)) { | ||
+ | vx = v; vy = 0; | ||
+ | } | ||
+ | if(isKeyDown(Key.ArrowLeft)) { | ||
+ | vx = -v; vy = 0; | ||
+ | } | ||
+ | if(isKeyDown(Key.ArrowUp)) { | ||
+ | vx = 0; vy = -v; | ||
+ | } | ||
+ | if(isKeyDown(Key.ArrowDown)) { | ||
+ | vx = 0; vy = v; | ||
+ | } | ||
+ | |||
+ | if(isOutsideView()) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | <script type=" | ||
+ | class Prey extends Circle { | ||
+ | |||
+ | int score = 0; | ||
+ | int time = 0; | ||
+ | |||
+ | | ||
+ | super(400, 300, 10); | ||
+ | setFillColor(Color.green); | ||
+ | moveToRandomLocation(); | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(collidesWithAnyShape()) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | | ||
+ | time++; | ||
+ | if(time % 150 == 0) { | ||
+ | new Bomb(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void moveToRandomLocation() { | ||
+ | do { | ||
+ | | ||
+ | } while(collidesWithAnyShape()) | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | <script type=" | ||
+ | class Bomb extends Rectangle { | ||
+ | |||
+ | | ||
+ | super(400, 300, 10, 10); | ||
+ | setFillColor(Color.red); | ||
+ | moveToRandomLocation(); | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(collidesWithAnyShape()) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | void moveToRandomLocation() { | ||
+ | do { | ||
+ | | ||
+ | } while (collidesWithAnyShape()) | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
</ | </ | ||
g9/uebungen/spiele9.1656601647.txt.gz · Zuletzt geändert: 2022/06/30 17:07 von Martin Pabst