SHARE
TWEET

Angriff der Killertomaten

a guest Jan 8th, 2017 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Mignon Game Kit Workshop
  2. Angriff der Killertomaten!
  3.  
  4. (c) mischka cc-by-sa
  5.  
  6. */
  7.  
  8. #include<gamekit_2_1.h>
  9.  
  10. // globale Varialblen
  11.  
  12. int spieler_pos = 2;
  13.  
  14. int tomate_pos_spalte = 6;
  15. int tomate_pos_zeile = 2;
  16. int tomatespeed = 30;
  17. int tomatecounter = gamekit.get_systemcounter();
  18.  
  19. boolean schuss = false;
  20. int abschuss_pos_zeile = 0;
  21. int abschuss_pos_spalte = 1;
  22. int abschusscounter = gamekit.get_systemcounter();
  23.  
  24.  
  25.  
  26. void setup(){
  27. // hier wird z.B. die gamekit-Bibliothek gestartet:
  28.  
  29. gamekit.Begin();
  30. Serial.begin(9600);
  31. delay(200);    // wartet 2 Sekunden, um den Fehler
  32.                // mit den gedrückten Buttons zu umgehen
  33.  
  34.  
  35.  
  36. }
  37.  
  38.  
  39. void zeichneSpieler(){
  40.   // zeichnet den Spieler an die richtige Position
  41.  
  42.   gamekit.set_pixel(spieler_pos,0 , 15);
  43.  
  44. }
  45.  
  46. void zeichneTomate(){
  47.   // zeichnet die Tomate auf den Bildschirm
  48.   gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 15);
  49. }
  50.  
  51. void bewegeTomate(){
  52.   // bewegt die Tomate um einen Schritt nach links
  53.   if (gamekit.get_systemcounter() == tomatecounter + tomatespeed){
  54.     gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 0);
  55.     tomate_pos_spalte-=1;
  56.     tomatecounter = gamekit.get_systemcounter();
  57.   }
  58.  
  59.   // wenn Tomate ganz links angekommen ist, spawne neue Tomate
  60.   // indem die Spaltenposition auf 6 gesetzt wird und eine zufällige
  61.   // Zeile ausgewählt wird (random)
  62.   if (tomate_pos_spalte < 0){
  63.     spawnTomate();
  64.   }
  65.  
  66. }
  67.  
  68. void spawnTomate(){
  69.    tomate_pos_spalte = 6;
  70.    tomate_pos_zeile = random(5);
  71. }
  72.  
  73.  
  74. void abschuss(){
  75.   if (schuss == true){
  76.     if (gamekit.get_systemcounter() == abschusscounter + 5){
  77.       // bewege den Schuss nach rechts
  78.      
  79.       gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
  80.       abschuss_pos_spalte+=1;
  81.       gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 15);
  82.       abschusscounter = gamekit.get_systemcounter();
  83.      
  84.       if (abschuss_pos_zeile == tomate_pos_zeile && abschuss_pos_spalte >= tomate_pos_spalte){
  85.         // wenn der Schuss die Tomate getroffen und abgeschossen hat
  86.         gamekit.set_pixel(tomate_pos_zeile, tomate_pos_spalte, 0);
  87.         gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
  88.         spawnTomate();
  89.        
  90.         schuss = false; // schuss zurücksetzen
  91.         abschuss_pos_spalte = 0;
  92.       }
  93.      
  94.       if (abschuss_pos_spalte == 7){
  95.         // wenn der Schuss ganz rechts angekommen ist, wird er zurückgesetzt
  96.         // als wäre nicht geschossen worden
  97.         schuss = false;
  98.         abschuss_pos_spalte = 0;
  99.       }
  100.     }
  101.   }
  102.  
  103.  
  104. }
  105.  
  106.  
  107.  
  108. void steuerung(){
  109.   // fragt die Druckknöpfe auf der Konsole ab und reagiert entsprechend
  110.   if (gamekit.button_pressed(butt_UP)){
  111.     gamekit.set_pixel(spieler_pos,0 , 0);
  112.     spieler_pos-=1;
  113.   }
  114.   if (gamekit.button_pressed(butt_DOWN)){
  115.     gamekit.set_pixel(spieler_pos,0 , 0);
  116.     spieler_pos+=1;
  117.   }
  118.   if (gamekit.button_pressed(butt_FUNCB)){
  119.     gamekit.set_pixel(abschuss_pos_zeile, abschuss_pos_spalte, 0);
  120.     schuss = true;
  121.     abschuss_pos_spalte = 0;
  122.     abschuss_pos_zeile = spieler_pos;
  123.     abschusscounter = gamekit.get_systemcounter();
  124.    
  125.   }
  126.  
  127. }
  128.  
  129. void loop(){
  130. // alles in der Funktion loop wiederholt sich bis das Kit ausgeschaltet wird
  131.  
  132. zeichneSpieler();
  133. zeichneTomate();
  134. steuerung();
  135. bewegeTomate();
  136. abschuss();
  137.  
  138.  
  139.  
  140.  
  141.  
  142. }
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top