ECE2035 class project
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed wave_player
Fork of missile_command by
Revision 4:0dc720aa3c71, committed 2014-11-17
- Comitter:
- slin77
- Date:
- Mon Nov 17 20:31:36 2014 +0000
- Parent:
- 3:fd1f794b7f5d
- Child:
- 5:3f356592ee9c
- Commit message:
- add new features
Changed in this revision
--- a/main.cpp Mon Nov 17 13:53:14 2014 +0000 +++ b/main.cpp Mon Nov 17 20:31:36 2014 +0000 @@ -123,7 +123,7 @@ uLCD.text_string(str3, 3, 5, FONT_7X8, BACKGROUND_COLOR); char go[] = "READY!"; uLCD.text_string(go, 6, 6, FONT_7X8, GREEN); - wait(1.5); + playSound("/sd/wavfiles/BUZZER.wav"); uLCD.text_string(go, 6, 6, FONT_7X8, BACKGROUND_COLOR); break; } @@ -131,10 +131,9 @@ } - /// 2.Begin the game loop while(1){ - + current_player.timer++; char str[] = {'s', 'c', 'o', 'r', 'e', ':', '0' + current_player.score}; char life_str[] = {'l','i','f', 'e',':', '0' + current_player.life}; char level_str[] = {'l', 'e', 'v', 'e', 'l' ,':','0' + current_player.current_level}; @@ -150,7 +149,9 @@ missile_generator(); /// It updates all incoming missiles on the screen update_explosion(); draw_explosion(); - + if (current_player.timer % 150 == 0 && current_player.life < 6) { + current_player.life++; + } /// 5.Implement the code to get user input and update the player /// -[Hint] You could see city_landscape.cpp to get some ideas about how to implement your player. <br> if(left_pb == 0){ @@ -178,8 +179,8 @@ check_city_destruction(); /// 6.Implement the code to draw a user missile /// -[Hint] You could see missile.cpp or missile_generator() for your reference <br> - if (current_player.score > 9 || (!left_pb && !right_pb)) { - advance_level(); + if (current_player.score > 9 || (!left_pb && !right_pb && !fire_pb && !fouth_pb)) { + advance_level(); //display_victory(); } else if(!is_any_left()) { current_player.life--; @@ -227,6 +228,7 @@ } void advance_level() { + current_player.timer = 0; current_player.current_level++; set_missile_speed(5 - current_player.current_level); set_missile_interval(10 - current_player.current_level); @@ -297,12 +299,14 @@ uLCD.cls(); char str[] = "You Are Winnner"; uLCD.text_string(str, 2, 9, FONT_7X8, WHITE); + playSound("/sd/wavfiles/ding_dong.wav"); } void display_failure() { uLCD.cls(); char str[] = "Game Over"; - uLCD.text_string(str, 3, 9, FONT_7X8, WHITE); + uLCD.text_string(str, 3, 9, FONT_7X8, WHITE); + playSound("/sd/wavfiles/ding_dong.wav"); }
--- a/player.cpp Mon Nov 17 13:53:14 2014 +0000 +++ b/player.cpp Mon Nov 17 20:31:36 2014 +0000 @@ -36,8 +36,10 @@ current_player.status = PLAYER_ACTIVE; current_player.score = 0; current_player.current_level = 0; - current_player.life = 5;//inital 5 hp - current_player.protector_num = 3; + current_player.life = 1;//inital 1 hp + current_player.protector_num = 3; + current_player.is_diagnoal = 0; + current_player.timer = 0; } void update_protector() { @@ -168,6 +170,7 @@ am[i].y = current_player.y; am[i].speed = 5; // need to be improved am[i].tick = 0; + am[i].is_diagnoal = current_player.is_diagnoal; current_player.am_remain--; break; }
--- a/player.h Mon Nov 17 13:53:14 2014 +0000 +++ b/player.h Mon Nov 17 20:31:36 2014 +0000 @@ -52,7 +52,10 @@ PLAYER_STATUS status;//if he is dead int score;//# of interceptions int protector_num;// number of protector left - PROTECTOR protector; + PROTECTOR protector; + int is_diagnoal; + int angle; + int timer; } PLAYER; /** et the information of city @brief x and y are the top left corner of the player drawing @@ -74,6 +77,8 @@ int speed; int tick; //anti missile's internal clock ANTIMISSLE_STATUS status; + int is_diagnoal; + int angle; } ANTIMISSILE; typedef enum{