Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Mignon Game Kit Workshop
- Angriff der Killertomaten!
- (c) mischka cc-by-sa
- */
- #include<gamekit_2_1.h>
- // globale Varialblen
- int spieler_pos = 2;
- int tomate_pos_spalte = 6;
- int tomate_pos_zeile = 2;
- int tomatespeed = 30;
- int tomatecounter = gamekit.get_systemcounter();
- boolean schuss = false;
- int abschuss_pos_zeile = 0;
- int abschuss_pos_spalte = 1;
- int abschusscounter = gamekit.get_systemcounter();
- void setup(){
- // hier wird z.B. die gamekit-Bibliothek gestartet:
- gamekit.Begin();
- Serial.begin(9600);
- delay(200); // wartet 2 Sekunden, um den Fehler
- // mit den gedrückten Buttons zu umgehen
- }
- void zeichneSpieler(){
- // zeichnet den Spieler an die richtige Position
- gamekit.set_pixel(spieler_pos,0 , 15);
- }
- void zeichneTomate(){
- // zeichnet die Tomate auf den Bildschirm
- gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 15);
- }
- void bewegeTomate(){
- // bewegt die Tomate um einen Schritt nach links
- if (gamekit.get_systemcounter() == tomatecounter + tomatespeed){
- gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 0);
- tomate_pos_spalte-=1;
- tomatecounter = gamekit.get_systemcounter();
- }
- // wenn Tomate ganz links angekommen ist, spawne neue Tomate
- // indem die Spaltenposition auf 6 gesetzt wird und eine zufällige
- // Zeile ausgewählt wird (random)
- if (tomate_pos_spalte < 0){
- spawnTomate();
- }
- }
- void spawnTomate(){
- tomate_pos_spalte = 6;
- tomate_pos_zeile = random(5);
- }
- void abschuss(){
- if (schuss == true){
- if (gamekit.get_systemcounter() == abschusscounter + 5){
- // bewege den Schuss nach rechts
- gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
- abschuss_pos_spalte+=1;
- gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 15);
- abschusscounter = gamekit.get_systemcounter();
- if (abschuss_pos_zeile == tomate_pos_zeile && abschuss_pos_spalte >= tomate_pos_spalte){
- // wenn der Schuss die Tomate getroffen und abgeschossen hat
- gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 0);
- gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
- spawnTomate();
- schuss = false; // schuss zurücksetzen
- abschuss_pos_spalte = 0;
- }
- if (abschuss_pos_spalte == 7){
- // wenn der Schuss ganz rechts angekommen ist, wird er zurückgesetzt
- // als wäre nicht geschossen worden
- schuss = false;
- abschuss_pos_spalte = 0;
- }
- }
- }
- }
- void steuerung(){
- // fragt die Druckknöpfe auf der Konsole ab und reagiert entsprechend
- if (gamekit.button_pressed(butt_UP)){
- gamekit.set_pixel(spieler_pos,0 , 0);
- spieler_pos-=1;
- }
- if (gamekit.button_pressed(butt_DOWN)){
- gamekit.set_pixel(spieler_pos,0 , 0);
- spieler_pos+=1;
- }
- if (gamekit.button_pressed(butt_FUNCB)){
- gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
- schuss = true;
- abschuss_pos_spalte = 0;
- abschuss_pos_zeile = spieler_pos;
- abschusscounter = gamekit.get_systemcounter();
- }
- }
- void loop(){
- // alles in der Funktion loop wiederholt sich bis das Kit ausgeschaltet wird
- zeichneSpieler();
- zeichneTomate();
- steuerung();
- bewegeTomate();
- abschuss();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement