You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p><b>Möchtest du Computerspiele nicht nur spielen sondern selbst programmieren? Dann bist du richtig beim CoderDojo!</b></p>
21
+
14
22
<h3>Was ist ein CoderDojo?</h3>
15
23
<p>
16
24
Das <a href="https://coderdojo.com/" target="_blank">CoderDojo</a> ist ein Club für Kinder und Jugendliche, die programmieren lernen und Spaß haben wollen.
17
25
In regelmäßigen Treffen wird gelernt wie man Code schreibt, Webseiten entwickelt oder Apps und Spiele programmiert.
Seit 2011 arbeitet Oliver bei Microsoft Österreich GmbH und war bereits in unterschiedlichen Bereichen tätig. Bevor er in das Developer Experience & Evangelism (DX) Team wechselte und seine aktuelle Rolle eines Technical Evangelists für Azure übernahm, unterstützte er als Microsoft Premier Field Engineer mehr als drei Jahre lang Microsoft Kunden im Development Umfeld. Als Technical Evangelist beschäft sich Oliver heute mit spannenden Kundenprojekten und -anfragen rund um die Microsoft Cloud Plattform, Microsoft Azure.<br/>
10
+
<br/>
11
+
Oliver besucht uns gemeinsam mit <ahref="#Andreas Schabus">Andreas Schabus</a> beim CoderDojo Linz am 28. August 2015. Oliver beschreibt die Übung, die Andi und er zu diesem Dojo mitbringen werden: "Das Internet der Dinge (Internet of Things, IoT) vereint Geräte, Sensoren, Cloud-Daten und Eure Ideen! Wir werden euch anhand eines einfachen Beispiels den Weg in die spannende Welt der Bastler zeigen. Nach einer Einführung erhaltet ihr die Möglichkeit (mit neuesten Microsoft Technologien und einem Raspberry Pi v2) selbst aktiv zu werden und eine einfache Lichtsteuerung zusammen zu bauen, welche über ein von euch geschriebenes Programm (.NET/C#) gesteuert wird."
Andreas Schabus arbeitet als Technical Evangelist bei Microsoft Österreich und konzentriert sich zurzeit auf die Entwicklung von Microsoft Azure Lösungen. Zu seinen aktuellen und vergangenen Arbeitsgebieten gehören unter anderem auch Windows Phone, Windows 8, Software Architektur, Security und Web Development. Darüber hinaus ist er als Sprecher bei lokalen und internationalen Konferenzen, sowie als Lektor an verschiedenen Unis und FHs aktiv.<br/>
10
+
<br/>
11
+
Andreas besucht uns gemeinsam mit <ahref="#Oliver Lintner">Oliver Lintner</a> beim CoderDojo Linz am 28. August 2015 und stellt das Internet der Dinge (Internet of Things, IoT) vor.
* Freitag, 28. August 2015 16:00 - 18:00 [zur Anmeldung](https://www.eventbrite.de/e/coderdojo-linz-tickets-17195644636){:target="_blank"}
9
+
* Freitag, 28. August 2015 16:00 - 18:00 ausgebucht
10
+
<br/>*Gastmentoren: [Oliver Lintner](http://coderdojo-linz.github.io/mentoren.html#Oliver Lintner) und [Andreas Schabus](http://coderdojo-linz.github.io/mentoren.html#Andreas Schabus), Microsoft*
12
11
<br/>Firma ebit, Kornstraße 7A, 4060 Leonding
13
12
* Freitag, 11. September 2015 16:00 - 18:00 [zur Anmeldung](https://www.eventbrite.de/e/coderdojo-linz-tickets-17993495028){:target="_blank"}
14
13
<br/>Wissensturm, Kärntnerstraße 26, 4020 Linz
@@ -35,7 +34,7 @@ Falls kein Laptop zur Verfügung steht, nehmen Sie bitte mit uns [Kontakt](http:
35
34
36
35
## Ort
37
36
38
-
Die nächsten beiden Termine am 14. und 28. August finden im Büro der Firma [ebit](http://www.ebit.at/){:target="_blank"} in der Kornstraße 7A, 4060 Leonding statt. Wir bedanken uns herzlich, dass wir den Besprechungsraum in Beschlag nehmen dürfen!
37
+
Der nächste Termin am 28. August findet im Büro der Firma [ebit](http://www.ebit.at/){:target="_blank"} in der Kornstraße 7A, 4060 Leonding statt. Wir bedanken uns herzlich, dass wir den Besprechungsraum in Beschlag nehmen dürfen!
Der Schläger hat nur ein Skript und das ist ganz einfach. Gesteuert wird der Schläger mit der Maus. Du kannst hier auch gleich die vier globalen Variablen des Spiels anlegen. Globale Variable gelten für alle Figuren. Klicke dazu auf den Knopf "Neue Variable", und lege folgende Variablen an: "BlockAnzahl", "Leben", "Level" und "Punkte". Beachte dass im Dialog der Auswahlknopf "Für alle Figuren" selektiert sein muss. Alle diese Variablen außer "BlockAnzahl" wollen wir auch am Spielfeld anzeigen. Klicke dazu den Auswahlknopf links vom Variablennamen.
44
-
- Ab Programmstart wird fortlaufend die X-Koordinate des Mauszeigers abgefragt, und der Schläger entsprechend positioniert. Außerdem müssen wir aufpassen, dass der Schläger nicht verschwindet wenn die Maus über die Spielfeldgrenze hinaus bewegt wird (x-Position < -240 oder x-Position > 240).
43
+
Der Schläger hat nur ein Skript und das ist ganz einfach. Gesteuert wird der Schläger mit der Maus. Du kannst hier auch gleich die vier globalen Variablen des Spiels anlegen. Globale Variable gelten für alle Figuren. Klicke dazu auf den Knopf "Neue Variable", und lege folgende Variablen an: "BlockAnzahl", "Leben", "Level" und "Punkte". Beachte dass im Dialog der Auswahlknopf "Für alle Figuren" selektiert sein muss. Alle diese Variablen außer "BlockAnzahl" wollen wir auch am Spielfeld anzeigen. Klicke dazu den Auswahlknopf links vom Variablennamen.<br/>
44
+
* Ab Programmstart wird fortlaufend die X-Koordinate des Mauszeigers abgefragt, und der Schläger entsprechend positioniert. Außerdem müssen wir aufpassen, dass der Schläger nicht verschwindet wenn die Maus über die Spielfeldgrenze hinaus bewegt wird (x-Position < -240 oder x-Position > 240).<br/>
Der Ball ist schon ein bisschen komplizierter. So hat der Ball zusätzliche Variable, die aber nur für den Ball gelten (also "Nur für diese Figur"): "AbprallPunkt", "BallAktiv" und "Geschwindigkeit".
51
-
- Bei Programmstart versteckt sich der Ball. Erst wenn er Nachrichten empfängt, tut er etwas.
52
-
- Wenn die Nachricht "Start" ankommt, zeigt sich der Ball oberhalb des Schlägers, und beginnt nach oben zu fliegen. Seine Geschwindigkeit ergibt sich aus dem Level - je höher der Level, desto schneller. Nach jedem Schritt überprüft der Ball, ob er den Schläger berührt oder unten am Schläger vorbeigefallen ist. Bei Schläger-Berührung ändert er seine Flugbahn abhängig vom Abprall-Punkt (dazu benötigt man die spannende mathematische Funktion "asin", die einen Wert zwischen -1 und +1 in einen Winkel umwandelt) - das macht das Spiel interessanter, weil die Spieler die Flugbahn beeinflussen kann. Außerdem muss der Ball ständig abfragen, ob er nicht vielleicht vom Rand abprallen muss. Zum Schluss versteckt er sich wieder, und prüft noch ob weitere Bälle ("Leben") vorhanden sind.
53
-
- Die Kollisionsabfrage mit den Blöcken macht der Ball nicht selbst, weil er nicht alle Blöcke kennt. Stattdessen erhält der von den Blöcken die Nachricht "BlockTreffer". Dann zählt er einen Punkt dazu und ändert seine Richtung um 180 Grad.
54
-
- Manchmal muss man den Ball auch stoppen. Erhält er die Nachricht "Stop", setzt er die Variable "BallAktiv" auf "0" (was so viel wie "falsch" bedeutet, also der Ball ist dann nicht aktiv). "BallAktiv" = "0" ist ein Abbruchkriterium für die Hautpschleife, er versteckt sich dann wieder und führt keine Aktionen mehr aus.
50
+
Der Ball ist schon ein bisschen komplizierter. So hat der Ball zusätzliche Variable, die aber nur für den Ball gelten (also "Nur für diese Figur"): "AbprallPunkt", "BallAktiv" und "Geschwindigkeit".<br/>
51
+
* Bei Programmstart versteckt sich der Ball. Erst wenn er Nachrichten empfängt, tut er etwas. <br/>
52
+
* Wenn die Nachricht "Start" ankommt, zeigt sich der Ball oberhalb des Schlägers, und beginnt nach oben zu fliegen.<br/> Seine Geschwindigkeit ergibt sich aus dem Level - je höher der Level, desto schneller. Nach jedem Schritt überprüft der Ball, ob er den Schläger berührt oder unten am Schläger vorbeigefallen ist. Bei Schläger-Berührung ändert er seine Flugbahn abhängig vom Abprall-Punkt (dazu benötigt man die spannende mathematische Funktion "asin", die einen Wert zwischen -1 und +1 in einen Winkel umwandelt) - das macht das Spiel interessanter, weil die Spieler die Flugbahn beeinflussen kann. Außerdem muss der Ball ständig abfragen, ob er nicht vielleicht vom Rand abprallen muss. Zum Schluss versteckt er sich wieder, und prüft noch ob weitere Bälle ("Leben") vorhanden sind.
53
+
* Die Kollisionsabfrage mit den Blöcken macht der Ball nicht selbst, weil er nicht alle Blöcke kennt. Stattdessen erhält der von den Blöcken die Nachricht "BlockTreffer". Dann zählt er einen Punkt dazu und ändert seine Richtung um 180 Grad.<br/>
54
+
* Manchmal muss man den Ball auch stoppen. Erhält er die Nachricht "Stop", setzt er die Variable "BallAktiv" auf "0" (was so viel wie "falsch" bedeutet, also der Ball ist dann nicht aktiv). "BallAktiv" = "0" ist ein Abbruchkriterium für die Hautpschleife, er versteckt sich dann wieder und führt keine Aktionen mehr aus.<br/>
Zuguterletzt der Block. Oder vielmehr die Blöcke, denn wir wollen ja viele Mauersteine abschießen. Die große Zahl unterschiedlicher Blöcke erzeugen wir, indem wir Klone mit verschiedenen Kostümen anlegen.
61
-
Der Block braucht zwei neue Variablen: "Spalte" und "Zeile". Bitte beachte: Die Variablen gelten wieder "Nur für diese Figur".
62
-
- Zu Beginn schickt der Block die Nachricht "NeuerLevel", auf die er selbst reagiert.
63
-
- Wenn der Block als Klon entstanden ist, wartet er eigentlich nur darauf von einem Ball getroffen zu werden. Ist das der Fall, spielt er noch einen Klang, fragt ab ob er der letzte Block war und startet dann einen neuen Level, und löscht sich schließlich selbst.
64
-
- Interessant ist wie die Blöcke vervielfältigt werden. Das passiert bei der Nachricht "NeuerLevel". Da heißt es erstmal "Stop" für alle, v.a. für den Ball, der während des Aufbaus des neuen Levels nicht stören soll. Darauf folgt eine geschachtelte Schleife für 5 Zeilen zu je 8 Blöcken. Jeder Block wird neu geklont, und erbt die Position des Ursprungs-Blocks, den wir jeweils weiterverschieben. Nach jeder Zeile von Blöcken ändern wir außerdem das Kostüm und damit die Farbe.
61
+
Der Block braucht zwei neue Variablen: "Spalte" und "Zeile". Bitte beachte: Die Variablen gelten wieder "Nur für diese Figur".<br/>
62
+
* Zu Beginn schickt der Block die Nachricht "NeuerLevel", auf die er selbst reagiert.<br/>
63
+
* Wenn der Block als Klon entstanden ist, wartet er eigentlich nur darauf von einem Ball getroffen zu werden. Ist das der Fall, spielt er noch einen Klang, fragt ab ob er der letzte Block war und startet dann einen neuen Level, und löscht sich schließlich selbst.<br/>
64
+
* Interessant ist wie die Blöcke vervielfältigt werden. Das passiert bei der Nachricht "NeuerLevel". Da heißt es erstmal "Stop" für alle, v.a. für den Ball, der während des Aufbaus des neuen Levels nicht stören soll. Darauf folgt eine geschachtelte Schleife für 5 Zeilen zu je 8 Blöcken. Jeder Block wird neu geklont, und erbt die Position des Ursprungs-Blocks, den wir jeweils weiterverschieben. Nach jeder Zeile von Blöcken ändern wir außerdem das Kostüm und damit die Farbe.<br/>
65
65
66
66
{: .right}
67
67
68
68
Super, du hast es geschafft. Viel Spaß beim Spielen!
69
69
70
70
## Erweiterungen
71
-
Sicher hast du noch eine Menge Ideen, um das Breakout-Spiel zu verbessern. Ein paar Vorschläge:
72
-
- In jedem Level sollen sich Anzahl, Farbe und Position der Blöcke verändern.
73
-
- Die Blöcke können sich bewegen, damit sie schwerer zu treffen sind.
74
-
- Wenn der Ball am unteren Bildschirmrand verschwindet, sollte der Schläger explodieren - zum Beispiel indem man mehrere Explosions-Kostüme hintereinander anzeigt, und einen passenden Klang dazu abspielt.
71
+
Sicher hast du noch eine Menge Ideen, um das Breakout-Spiel zu verbessern. Ein paar Vorschläge:<br/>
72
+
* In jedem Level sollen sich Anzahl, Farbe und Position der Blöcke verändern.<br/>
73
+
* Die Blöcke können sich bewegen, damit sie schwerer zu treffen sind.<br/>
74
+
* Wenn der Ball am unteren Bildschirmrand verschwindet, sollte der Schläger explodieren - zum Beispiel indem man mehrere Explosions-Kostüme hintereinander anzeigt, und einen passenden Klang dazu abspielt.<br/>
75
75
76
76
## Ausprobieren
77
77
78
-
Du kannst das fertige Projekt unter [https://scratch.mit.edu/projects/72990950/](https://scratch.mit.edu/projects/72990950/){:target="_blank"} ausprobieren.
78
+
Du kannst das fertige Projekt unter [https://scratch.mit.edu/projects/72990950/](https://scratch.mit.edu/projects/72990950/){:target="_blank"} ausprobieren.
0 commit comments