Ben Evans University Second Year Project. Game Called Defender.

Dependencies:   mbed

https://os.mbed.com/media/uploads/evanso/84bc1a30759fd6a1e3f1fd1fae3e97c2.png

Hello, soldier, you have been specially selected as the defender of planet earth.

Your mission, if you choose to accept it. Fly around the planet and pulverise invading alien ships for as long as you can. Stop the aliens abducting the innocent people on the ground. Be warned if an alien ship manages to abduct a person and take them to top of the screen, they will no longer move randomly and will begin to hunt you down. This sounds like a challenge you were trained for.

But don’t worry soldier you’re not going into battle empty-handed. Your ship is equipped with a state of the art laser beam that has unlimited ammo and four smart bombs that will destroy anything on the screen. The ship also has three lives so use them wisely.

As time goes on more alien ships will arrive on planet earth increasing the difficulty of your mission. And remember the landscape bellow loops around so if you continually fly in the same direction you go to your original position. Good luck soldier.

Committer:
evanso
Date:
Mon May 25 22:18:11 2020 +0000
Revision:
83:35d1e846eab2
Parent:
79:66bcf8fa2d2d
Child:
84:f61c85a5f13a
Added many unit tests for PlayEngine class wich all passed!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:b7f1f47bb26a 1 /*
eencae 0:b7f1f47bb26a 2 ELEC2645 Embedded Systems Project
eencae 0:b7f1f47bb26a 3 School of Electronic & Electrical Engineering
eencae 0:b7f1f47bb26a 4 University of Leeds
evanso 1:1f2ae263248e 5 Name:Benjamin Evans
evanso 1:1f2ae263248e 6 Username:el18bpe
evanso 1:1f2ae263248e 7 Student ID Number:201216635
evanso 1:1f2ae263248e 8 Date:23/02/2020
eencae 0:b7f1f47bb26a 9 */
eencae 0:b7f1f47bb26a 10
evanso 13:12276eed13ac 11 // pre-processor directives ----------------------------------------------------
eencae 0:b7f1f47bb26a 12 #include "mbed.h"
eencae 0:b7f1f47bb26a 13 #include "Gamepad.h"
eencae 0:b7f1f47bb26a 14 #include "N5110.h"
evanso 11:ab578a151f67 15 #include "GameEngine.h"
evanso 3:dee187b8b30c 16 #include "Spaceship.h"
evanso 6:12e8433382b3 17 #include "Map.h"
evanso 11:ab578a151f67 18
evanso 12:1c0b6796aaca 19 #ifdef GAME_TEST
evanso 67:a2984682d641 20 #include "test.h"
evanso 11:ab578a151f67 21 #endif
evanso 11:ab578a151f67 22
evanso 13:12276eed13ac 23 // Objects ---------------------------------------------------------------------
evanso 13:12276eed13ac 24
evanso 27:8bb2bd97c319 25 /** Define Game Engine object*/
evanso 8:dd1037c5435b 26 GameEngine engine;
evanso 11:ab578a151f67 27
evanso 13:12276eed13ac 28 // functions -------------------------------------------------------------------
eencae 0:b7f1f47bb26a 29 int main()
evanso 3:dee187b8b30c 30 {
evanso 64:e9dfc35a1738 31 // Initalise The game engine
evanso 42:3aed75338272 32 engine.init();
evanso 42:3aed75338272 33
evanso 11:ab578a151f67 34 // Compile with tests
evanso 12:1c0b6796aaca 35 #ifdef GAME_TEST
evanso 83:35d1e846eab2 36 // Spaceship tests
evanso 13:12276eed13ac 37 run_spaceship_movement_tests();
evanso 13:12276eed13ac 38 run_spaceship_draw_tests();
evanso 83:35d1e846eab2 39 // Map tests
evanso 14:7419c680656f 40 run_map_draw_tests();
evanso 83:35d1e846eab2 41 // Alien tests
evanso 65:daa792a09e1f 42 run_alien_draw_tests();
evanso 65:daa792a09e1f 43 run_check_collision_test();
evanso 83:35d1e846eab2 44 // Weapons tests
evanso 23:cc44e26c08fa 45 run_weapons_draw_tests();
evanso 83:35d1e846eab2 46 // Explosion tests
evanso 26:1a7056eb3253 47 run_explosion_draw_tests();
evanso 83:35d1e846eab2 48 // People tests
evanso 37:a05eac7fcb4c 49 run_people_draw_tests();
evanso 83:35d1e846eab2 50 // Menu tests
evanso 65:daa792a09e1f 51 run_menu_select_part_test();
evanso 65:daa792a09e1f 52 run_menu_scroll_test();
evanso 70:8c4572d17441 53 run_menu_draw_part_test();
evanso 83:35d1e846eab2 54 // HUD tests
evanso 66:33f479036a5d 55 run_HUD_draw_test();
evanso 83:35d1e846eab2 56 // Saved Games tests
evanso 67:a2984682d641 57 run_saved_games_scroll_test();
evanso 67:a2984682d641 58 run_display_saved_games_test();
evanso 67:a2984682d641 59 run_save_game_screen_test();
evanso 83:35d1e846eab2 60 // Settings tests
evanso 70:8c4572d17441 61 run_settings_select_part_test();
evanso 70:8c4572d17441 62 run_settings_scroll_test();
evanso 70:8c4572d17441 63 run_display_settings_screen_test();
evanso 83:35d1e846eab2 64 // Play Engine tests
evanso 79:66bcf8fa2d2d 65 run_no_high_scores_test();
evanso 83:35d1e846eab2 66 // Play Engine tests
evanso 83:35d1e846eab2 67 run_read_accelerometer_direction_test();
evanso 83:35d1e846eab2 68 run_spawn_aliens_test();
evanso 83:35d1e846eab2 69 run_create_alien_test();
evanso 83:35d1e846eab2 70 run_create_explosion_test();
evanso 83:35d1e846eab2 71 run_draw_explosions_test();
evanso 83:35d1e846eab2 72 run_spawn_people_test();
evanso 83:35d1e846eab2 73 run_reset_map_timer_test();
evanso 83:35d1e846eab2 74 run_reset_map_test();
evanso 11:ab578a151f67 75 #endif
evanso 42:3aed75338272 76
evanso 47:49fa1adc10b4 77 while (1) {
evanso 42:3aed75338272 78 engine.game_select_part();
evanso 64:e9dfc35a1738 79 wait(0.05);
evanso 3:dee187b8b30c 80 }
evanso 42:3aed75338272 81 }