Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Revision:
14:e8de27c4d0d4
Parent:
13:5c3dc6e827c2
Child:
15:0145c5f0bea1
--- a/game/game.cpp	Sun Mar 17 22:56:24 2019 +0000
+++ b/game/game.cpp	Mon Mar 18 10:34:48 2019 +0000
@@ -45,6 +45,8 @@
 const float enemy_collision_offset_x = 5;
 const float enemy_collision_offset_y = 3;
 
+int game_score = 0;
+
 
 GameObject player;
 
@@ -73,16 +75,24 @@
             enemies[i].x -= enemy_speed;
             if (!enemies[i].dead) {
                 lcd.drawSprite(enemies[i].x, enemies[i].y, 7, 11, (int*)enemyShip2);
-            } else {
+            } 
+            if (enemies[i].x < 0){
+                enemies[i].active = false;
+            }
+            else {
                 if (enemies[i].dead_counter > 0) {
                     enemies[i].dead_counter--;
-                    lcd.drawSprite(enemies[i].x, enemies[i].y, 7, 11, (int*)enemyExploded);
-                } else {
+                    if (enemies[i].dead_counter == 2){    
+                        lcd.drawSprite(enemies[i].x, enemies[i].y, 7, 11, (int*)enemyHalfExploded);
+                    }
+                    else if (enemies[i].dead_counter == 1){
+                        lcd.drawSprite(enemies[i].x, enemies[i].y, 7, 11, (int*)enemyExploded);
+                        game_score += 30;
+                    }
+                else {
                     enemies[i].active = false;
                 }
             }
-            if (enemies[i].x < -5){
-                enemies[i].active = false;
             }
         }
     }
@@ -229,11 +239,20 @@
            y_ship_pos += ship_speed; 
         }
     }
-    else if (y_ship_pos >= (47 - spaceship1_height)){ y_ship_pos = 47 - spaceship1_height;}     //Limits for y direction border IMPROVE IF POSSIBLE.
-    else if (y_ship_pos < 0){ y_ship_pos = 0;}
-       
+    else if (y_ship_pos >= (47 - spaceship1_height)){   //Limits for y direction border IMPROVE IF POSSIBLE.
+        y_ship_pos = 47 - spaceship1_height;
+    } 
+    else if (y_ship_pos < 0){ 
+        y_ship_pos = 0;
+    }      
 }
 
+void highScore(){
+    char buffer[4];
+    sprintf(buffer," Score: %i",game_score);
+    //printf(buffer);
+    lcd.printString(buffer,0,0);    
+}
 
 bool Game::updateAndDraw() {
 
@@ -259,6 +278,7 @@
     updateAndDrawMediumStars();
     updateAndDrawEnemies();
     collideEnemiesAndBlasts();
+    highScore();
     
     lcd.drawSpriteOnTop(x_ship_pos, y_ship_pos, spaceship1_width, spaceship1_height, (int *)spaceShip1);
     /*char buffer[4];