kk logo

  Ich kenne das Spiel space invaders zwar nicht mehr von den acarde Automaten, sondern nur vom Computer aber es hat mich dennoch Stunden gefangen genommen. Bei meinem "mini" space invaders Spiel kann man zwar nicht durch das Weltall fliegen sonder nur sein X nach oben und unten bewegen. Spaß macht das Spiel dennoch.

 Arduino / Ardulbock Spiel: mini space invaders

Einfach gesagt, mit dem Joystick muss das X auf dem OLED Display nach oben und unten bewegt werden und darf dabei die anderen X die einem entgegen kommen nicht berühren. Das OLED ist an den Bus des Arduino angeschlossen, der Joystick wird an die analogen Eingängen A0 und A1 angeschlossen. Ieh hab das grove System von SEEED verwendet.

 

1 pong arduino diy projekt

 

 Die sechs X kommen dem einem X immer näher, ein Zufallsgenerator entscheidet welcher Weg frei bleibt. In diesem Fall muss das X in der Mitte sein, sonst wird es von der anderen X einfach verschlungen und das Spiel ist aus.

2 pong arduino spiele projekt

 

 Hier kurz vor dem Ende, bis zu letzt hat der Spieler Zeit auszuweichen. Dabei werden die feindlichen X mit jeder Runde schneller. Bei dem Versuch das X zu verschlingen.

3 space invaders game arduino display

 

Wurde der Spieler dann verschlungen bekommt er wenigsten noch gesagt wieviele Punkte er gemacht hat. Für jede bestandene Runde gibt es einen Punkt. Danach geht das Spiel gleich weiter. "you are game over push the button to try again" gibt es bei diesem Spiel nicht..... 

4 space invaders game arduino joystick

 Arduino / Ardulbock Software für mini space invaders Spiel 

An der Ardublock Vorschau sieht man bereits wie groß das Programm ist. Deshalb zeige ich hier nur Ausschnitte und beschreibe diese kurz. Das gesamte Programm gibt hier als ZIP zum herunterladen. Es kann nur mit der DUIONO EDU Version ARDUBLOCK geöffnet werden. Also bitte nicht die mini oder maxi Version verwenden. Es gibt drei Versionen in der ZIP Datei.

  1. Spiel ohne Punkte und ohne Zeit, es kommen nur die XXXXX, bei einem Fehler geht es einfach weiter
  2. Spiel mit Punkten, jede Runde die geschafft wird, gibt einen Punkt. Wird ein Fehler gemacht, erscheint die Punktezahl und nach 2 Sekunden geht es weiter.
  3. Spiel mit Punkten wie oben, nur dass die Geschwindigkeit mit der sich die XXXXXX bewegen immer schneller wird. Diese Version beschreibe ich auch hier.

 

A space invaders oled game

 

 Über das "deltaT" wird die Zeit gesteuert in der der die X vorrücken. Das reset "deltaT" sorgt dafür das nach jeder Runde die Zeit neu zu zählen beginnt. Damit das Programm nicht so lange wird, habe ich die einzelnen Teile in Unterprogramme verteilt. Außerdem frage ich den Joystick in der ´"integer" Variable ab. Durch diese Variable entscheidet sich im nächsten Schritt welcher Teil vom Programm weiter ausgeführt wird.

B space invaders oled game

 

 Da der Joystick nicht 100% in der Mitte bleibt muss ich für die Mittelstellung die Zahlen 502 bis 505 abfragen. Liegt eine dieser Zahlen an, dann ist der Joystick in der Mitte. Damit ich im zweiten "falls" Block abfragen kann, dass der Spieler dem X ausweicht. Ändere ich die 502 bis 505 in den Wert 3 um und das X wird auf der Linie 3 angezeigt. Im zweiten "falls" Block prüfe ich nun mit "und" ob die X schon ganz hinten angekommen sind, wo der Spieler stehen soll und ob er da auch steht. Steht er mit seinem X falsch ist das Spiel zu Ende und das Ergebnis wird auf dem Display angezeigt. 

C space invaders oled diy

 

Das gleiche macht das Programm nun auch wenn der Joystick nach oben gedrückt wird. Wenn "integer" als Größer als 502 ist. Über den Zuordnen Block von 4-6 werden die Zeilen des OLED angesteuert.

D space invaders oled projekt

 

Genau das gleiche nur wird hier der Joystick nach unten bewegt.

E pong arduino oled game

 

Ist der Zähler bei sieben angekommen, ist eine Runde vorbei und...

  1. es gibt einen Punkt in der Punkte Variable
  2. der Zähler wird auf null gesetzt
  3. es gibt eine neue Zufallszahl über reandom
  4. wer möchte kann sich die Variablen im serial monitor ansehen
  5. das OLED wird auf ---- zurück gesetzt
  6. von der Zeit werden 10ms abgezogen

F pong arduino oled game

 

 Hier das erste Unterprogramm. Es sogt dafür dass auf jeder Zeile im Display ein X erscheint. Nur auf der zufällig aufgewählten Zeile eben nicht. Der "falls" Block wird sieben man benötigt. Jedesmal fehlt eine Zahl.

G pong arduino oled game

 

 In den nächsten Unterprogrammen werden nun die Zeilen mit den X für die jeweilige Reihe gesetzte. Auch diese "falls" Blöcke muss nach unten und rechts sieben mal geklont werden. Damit wirklich nur die Zeile und Reihe ein X bekommt die gerade soll, ist die oberste Bedingungen, dass "nicht --> fehler =" Diese Bedingungen kann nur "nicht" von einer Variablen erfüllt sein, da der Zufallsgenerator immer nur eine Zahl ausgibt.

H pong arduino oled diy proejkt

King of my heart

Let the King of my heart
Be the mountain where I run
The fountain I drink from
Oh, He is my song

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee