ECE2035 class project

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed wave_player

Fork of missile_command by ECE 2035 TA

Files at this revision

API Documentation at this revision

Comitter:
slin77
Date:
Mon Nov 17 21:23:02 2014 +0000
Parent:
4:0dc720aa3c71
Commit message:
add big_shoot

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
player.cpp Show annotated file Show diff for this revision Revisions of this file
player.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Nov 17 20:31:36 2014 +0000
+++ b/main.cpp	Mon Nov 17 21:23:02 2014 +0000
@@ -173,6 +173,9 @@
             current_player.protector.timer = 0;
             current_player.protector_num--;
         }
+        if(left_pb == 0 && right_pb == 0 && fouth_pb != 0 && fire_pb != 0) {
+            big_shoot();
+        }
         update_protector();
         update_antimissile_positions();
         check_interception();
--- a/player.cpp	Mon Nov 17 20:31:36 2014 +0000
+++ b/player.cpp	Mon Nov 17 21:23:02 2014 +0000
@@ -25,6 +25,7 @@
 #include "uLCD_4DGL.h"
 #include "globals.h"
 #include "player.h"
+#include <math.h>
 
 // Example of drawing the player
 
@@ -138,9 +139,9 @@
     uLCD.line(x - 5, y - 3, x  - 5, y + PLAYER_HEIGHT + 3, BACKGROUND_COLOR);
     uLCD.line(x- 5 + PLAYER_WIDTH, y - 3, x- 5 + PLAYER_WIDTH, y + PLAYER_HEIGHT + 3, BACKGROUND_COLOR);
     uLCD.line(x, y - 3, x, y + PLAYER_HEIGHT + 3, BACKGROUND_COLOR); 
-    if (current_player.x - PLAYER_DELTA > 0) {
+    if (current_player.x - PLAYER_DELTA > 0 && !current_player.is_diagnoal) {
         current_player.x = current_player.x - PLAYER_DELTA;    
-    }    
+    } 
 }
 
 void player_move_right() {
@@ -177,6 +178,24 @@
             }
     }    
 }
+
+void big_shoot() {
+    int i, count = 0;
+    if (current_player.am_remain > 0) {
+        for(i = 0; i < current_player.max_am; i++) {
+            if (am[i].status == DEACTIVE) {
+             count++;
+             am[i].status = ACTIVE;
+             am[i].x = (current_player.x * 2 + count * 32) % 128 ;
+             am[i].y = 100;
+             am[i].speed = 5; 
+             am[i].tick = 0;
+             am[i].is_diagnoal = current_player.is_diagnoal;
+             current_player.am_remain--;
+            }
+        }    
+    }    
+}
 //update all active missiles position 
 void update_antimissile_positions() {
         int i, rate;
--- a/player.h	Mon Nov 17 20:31:36 2014 +0000
+++ b/player.h	Mon Nov 17 21:23:02 2014 +0000
@@ -109,6 +109,7 @@
 void update_explosion();
 void draw_explosion();
 void update_protector();// update protector status and draw it on the screen
+void big_shoot();//shoot all remaining antimissile at random position
 
 //extern PLAYER current_player;
 //extern ANTIMISSILE am[5];