Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Sun May 17 21:12:34 2020 +0000
Revision:
40:71f947254fda
Parent:
36:27aa597db3d2
Child:
82:3211b31e9421
Added menu class wich scrolls through menu parts and displays them

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evanso 33:7fedd8029473 1 #include "People.h"
evanso 33:7fedd8029473 2
evanso 33:7fedd8029473 3 const int k_people_sprite[5][4] = {
evanso 33:7fedd8029473 4 { 0,1,1,0,},
evanso 33:7fedd8029473 5 { 1,1,1,1,},
evanso 33:7fedd8029473 6 { 1,1,1,1,},
evanso 33:7fedd8029473 7 { 0,1,1,0,},
evanso 33:7fedd8029473 8 { 0,1,1,0,},
evanso 33:7fedd8029473 9 };
evanso 33:7fedd8029473 10
evanso 33:7fedd8029473 11 People::People() {
evanso 33:7fedd8029473 12
evanso 33:7fedd8029473 13 }
evanso 33:7fedd8029473 14
evanso 33:7fedd8029473 15 People::~People() {
evanso 33:7fedd8029473 16
evanso 33:7fedd8029473 17 }
evanso 33:7fedd8029473 18
evanso 33:7fedd8029473 19 void People::init(Gamepad &pad, int position_x_start) {
evanso 36:27aa597db3d2 20 // Define variables
evanso 35:577c65bf914e 21 sprite_x_length = 4;
evanso 35:577c65bf914e 22 sprite_y_length = 5;
evanso 33:7fedd8029473 23 position_x_ = position_x_start;
evanso 33:7fedd8029473 24 position_y_ = 43;
evanso 34:85ccc16f24d2 25 alien_collision_flag = false;
evanso 34:85ccc16f24d2 26 people_move_counter_ = 0;
evanso 34:85ccc16f24d2 27 random_move_counter_ = 0;
evanso 33:7fedd8029473 28 }
evanso 33:7fedd8029473 29
evanso 34:85ccc16f24d2 30 void People::draw_people(N5110 &lcd, Direction d_, int map_length_,
evanso 34:85ccc16f24d2 31 int position_x_map_){
evanso 34:85ccc16f24d2 32 position_x_ += calc_sprite_movement(d_);
evanso 34:85ccc16f24d2 33 lcd.drawSprite(position_x_, position_y_, 5, 4, (int*)k_people_sprite);
evanso 34:85ccc16f24d2 34 off_screen_x_y_checker(map_length_, position_x_map_);
evanso 34:85ccc16f24d2 35
evanso 34:85ccc16f24d2 36 // move alien to top of screen if collision with alien
evanso 36:27aa597db3d2 37 collision_with_alien();
evanso 36:27aa597db3d2 38
evanso 34:85ccc16f24d2 39 people_move_counter_++;
evanso 34:85ccc16f24d2 40 }
evanso 34:85ccc16f24d2 41
evanso 36:27aa597db3d2 42 void People::collision_with_alien(){
evanso 40:71f947254fda 43 if(alien_collision_flag && !alien_track){
evanso 36:27aa597db3d2 44 //people moves on its own but at half speed of spaceship
evanso 36:27aa597db3d2 45 if (people_move_counter_%2 == 0) {
evanso 36:27aa597db3d2 46 if (random_move_counter_ == 0){
evanso 36:27aa597db3d2 47 //move alien to top of screen
evanso 36:27aa597db3d2 48 random_direction_ = 6;
evanso 36:27aa597db3d2 49 random_move_counter_ = 43;
evanso 36:27aa597db3d2 50 }
evanso 36:27aa597db3d2 51
evanso 36:27aa597db3d2 52 //move poeple
evanso 36:27aa597db3d2 53 move_direction();
evanso 36:27aa597db3d2 54 random_move_counter_ --;
evanso 36:27aa597db3d2 55 }
evanso 36:27aa597db3d2 56 }
evanso 36:27aa597db3d2 57 }
evanso 36:27aa597db3d2 58
evanso 34:85ccc16f24d2 59 void People::off_screen_x_y_checker(int map_length_, int position_x_map_){
evanso 34:85ccc16f24d2 60 // loops the people round if it reaches the end of the map
evanso 34:85ccc16f24d2 61 if(position_x_ <= (84 - map_length_)){
evanso 34:85ccc16f24d2 62 position_x_ += map_length_;
evanso 34:85ccc16f24d2 63 }else if (position_x_ >= map_length_){
evanso 34:85ccc16f24d2 64 position_x_ -= map_length_ + 10;
evanso 34:85ccc16f24d2 65 }
evanso 34:85ccc16f24d2 66 }
evanso 34:85ccc16f24d2 67
evanso 34:85ccc16f24d2 68 bool People::get_alien_collision_flag(){
evanso 34:85ccc16f24d2 69 return alien_collision_flag;
evanso 34:85ccc16f24d2 70 }