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 04 10:47:06 2020 +0000
Revision:
20:febd920ec29e
Parent:
19:1bc0a2d22054
Child:
21:f7d7834e3af1
Added collision detection so the alien and bullet is deleted if a bullet hits it.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evanso 19:1bc0a2d22054 1 #include "Alien.h"
evanso 19:1bc0a2d22054 2
evanso 20:febd920ec29e 3 const int k_alien_sprite[6][7] = {
evanso 20:febd920ec29e 4 { 0,0,1,1,1,1,0,},
evanso 20:febd920ec29e 5 { 0,1,0,1,1,0,1,},
evanso 20:febd920ec29e 6 { 0,1,0,1,1,0,1,},
evanso 20:febd920ec29e 7 { 0,0,1,1,1,1,0,},
evanso 20:febd920ec29e 8 { 0,1,0,1,0,1,0,},
evanso 20:febd920ec29e 9 { 1,0,0,1,0,0,1,},
evanso 19:1bc0a2d22054 10 };
evanso 19:1bc0a2d22054 11
evanso 19:1bc0a2d22054 12 Alien::Alien() {
evanso 19:1bc0a2d22054 13
evanso 19:1bc0a2d22054 14 }
evanso 19:1bc0a2d22054 15
evanso 19:1bc0a2d22054 16 Alien::~Alien() {
evanso 19:1bc0a2d22054 17
evanso 19:1bc0a2d22054 18 }
evanso 19:1bc0a2d22054 19
evanso 19:1bc0a2d22054 20 void Alien::init() {
evanso 20:febd920ec29e 21 position_x_alien_ = 10;
evanso 19:1bc0a2d22054 22 position_y_alien_ = 22;
evanso 19:1bc0a2d22054 23 }
evanso 19:1bc0a2d22054 24
evanso 20:febd920ec29e 25 void Alien::draw_alien(N5110 &lcd) {
evanso 20:febd920ec29e 26 lcd.drawSprite(position_x_alien_, position_y_alien_, 6, 7, (int*)k_alien_sprite);
evanso 20:febd920ec29e 27 }
evanso 20:febd920ec29e 28
evanso 20:febd920ec29e 29 bool Alien::check_collision(Weapons bullet) {
evanso 20:febd920ec29e 30 bool collision = false;
evanso 20:febd920ec29e 31 //printf ("Collision 1 = %d\n", collision);
evanso 20:febd920ec29e 32 // checks collision if bullet is going in east direction
evanso 20:febd920ec29e 33 if(bullet.get_direction()){
evanso 20:febd920ec29e 34 Vector2D bullet_pos_two = bullet.get_pos_two();
evanso 20:febd920ec29e 35 //int bullet_pos_twox = bullet_pos_two.x;
evanso 20:febd920ec29e 36 //int bullet_pos_twoy = bullet_pos_two.y;
evanso 20:febd920ec29e 37 //printf ("alien x = %d, bullet x = %d\n", position_x_alien_,bullet_pos_twox );
evanso 20:febd920ec29e 38 //printf ("alien y = %d, bullet y = %d\n", position_y_alien_,bullet_pos_twoy );
evanso 20:febd920ec29e 39 if(bullet_pos_two.x >= position_x_alien_ && bullet_pos_two.x <= position_x_alien_ + 6 && position_y_alien_ <= bullet_pos_two.y <= position_y_alien_ + 7){
evanso 20:febd920ec29e 40 collision = true;
evanso 20:febd920ec29e 41 }
evanso 20:febd920ec29e 42 //printf ("Collision 2 = %d\n", collision);
evanso 20:febd920ec29e 43 // checks collision if bullet is going in west direction
evanso 20:febd920ec29e 44 }else if(!bullet.get_direction()){
evanso 20:febd920ec29e 45 Vector2D bullet_pos_one = bullet.get_pos_one();
evanso 20:febd920ec29e 46 if(bullet_pos_one.x >= position_x_alien_ && bullet_pos_one.x <= position_x_alien_ + 6 && position_y_alien_ <= bullet_pos_one.y <= position_y_alien_ + 7){
evanso 20:febd920ec29e 47 collision = true;
evanso 20:febd920ec29e 48 }
evanso 20:febd920ec29e 49 //printf ("Collision 3 = %d\n", collision);
evanso 20:febd920ec29e 50 }
evanso 20:febd920ec29e 51 //printf ("Collision 4 = %d\n", collision);
evanso 20:febd920ec29e 52 return collision;
evanso 19:1bc0a2d22054 53 }