ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19zf

Dependencies:   mbed

Committer:
el19zf
Date:
Tue Apr 14 05:47:23 2020 +0000
Revision:
4:b12a49f0b730
Parent:
3:b8fbaefc496c
Child:
8:8287d2ef965d
add a shot class to create a series of shots moving different directions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el19zf 2:67b51ee7fc34 1 #include "People.h"
el19zf 2:67b51ee7fc34 2 #define INIT_x 40
el19zf 2:67b51ee7fc34 3 #define INIT_y 20
el19zf 2:67b51ee7fc34 4
el19zf 2:67b51ee7fc34 5
el19zf 2:67b51ee7fc34 6 const int people_sprite[4][4] = {
el19zf 2:67b51ee7fc34 7 {0,1,1,0},
el19zf 2:67b51ee7fc34 8 {1,1,1,1},
el19zf 2:67b51ee7fc34 9 {0,1,1,0},
el19zf 2:67b51ee7fc34 10 {0,1,1,0},
el19zf 3:b8fbaefc496c 11 };//try to draw a people, but for the operability of game, seems not good..
el19zf 2:67b51ee7fc34 12
el19zf 2:67b51ee7fc34 13 People::People() {
el19zf 2:67b51ee7fc34 14
el19zf 2:67b51ee7fc34 15 }
el19zf 2:67b51ee7fc34 16
el19zf 2:67b51ee7fc34 17 People::~People() {
el19zf 2:67b51ee7fc34 18
el19zf 2:67b51ee7fc34 19 }
el19zf 2:67b51ee7fc34 20
el19zf 2:67b51ee7fc34 21 void People::init() {
el19zf 2:67b51ee7fc34 22
el19zf 2:67b51ee7fc34 23 _x = INIT_x;
el19zf 2:67b51ee7fc34 24 _y = INIT_y;//Set initial postion of people
el19zf 2:67b51ee7fc34 25 }
el19zf 2:67b51ee7fc34 26 void People::draw(N5110 &lcd) {
el19zf 2:67b51ee7fc34 27
el19zf 2:67b51ee7fc34 28 //Draw sprite to represent a people
el19zf 2:67b51ee7fc34 29 lcd.drawSprite(_x,_y,4,4,(int*)people_sprite);
el19zf 3:b8fbaefc496c 30 // printf("drawSprite");
el19zf 2:67b51ee7fc34 31 }
el19zf 2:67b51ee7fc34 32
el19zf 2:67b51ee7fc34 33 void People::set_pos(Vector2D p)
el19zf 2:67b51ee7fc34 34 {
el19zf 2:67b51ee7fc34 35 _x = p.x;
el19zf 2:67b51ee7fc34 36 _y = p.y;
el19zf 2:67b51ee7fc34 37 }
el19zf 2:67b51ee7fc34 38
el19zf 3:b8fbaefc496c 39 void People::set_velocity(Direction d,float mag)
el19zf 2:67b51ee7fc34 40 {
el19zf 3:b8fbaefc496c 41 _d = d;
el19zf 3:b8fbaefc496c 42 _mag = mag;
el19zf 2:67b51ee7fc34 43 }
el19zf 2:67b51ee7fc34 44
el19zf 2:67b51ee7fc34 45 Vector2D People::get_pos()
el19zf 2:67b51ee7fc34 46 {
el19zf 2:67b51ee7fc34 47 Vector2D p = {_x,_y};
el19zf 3:b8fbaefc496c 48 //printf("Coord = %f,%f\n",p.x,p.y);
el19zf 2:67b51ee7fc34 49 return p;
el19zf 2:67b51ee7fc34 50 }
el19zf 2:67b51ee7fc34 51
el19zf 3:b8fbaefc496c 52 void People::update()
el19zf 2:67b51ee7fc34 53 {
el19zf 3:b8fbaefc496c 54 if (_d == S) {
el19zf 3:b8fbaefc496c 55 if(_mag < 0.25f) { _x += 0; _y += 1;} else
el19zf 3:b8fbaefc496c 56 if(0.25f < _mag < 0.5f) { _x += 0; _y += 2;} else
el19zf 3:b8fbaefc496c 57 if(0.5f < _mag < 0.75f) { _x += 0; _y += 3;} else
el19zf 3:b8fbaefc496c 58 { _x += 0; _y += 4;}}
el19zf 3:b8fbaefc496c 59 if (_d == SE) {
el19zf 3:b8fbaefc496c 60 if(_mag < 0.25f) { _x += 1; _y += 1;} else
el19zf 3:b8fbaefc496c 61 if(0.25f < _mag < 0.5f) { _x += 2; _y += 2;} else
el19zf 3:b8fbaefc496c 62 if(0.5f < _mag < 0.75f) { _x += 3; _y += 3;} else
el19zf 3:b8fbaefc496c 63 { _x += 4; _y += 4;}}
el19zf 3:b8fbaefc496c 64 if (_d == E) {
el19zf 3:b8fbaefc496c 65 if(_mag < 0.25f) { _x += 1; _y += 0;} else
el19zf 3:b8fbaefc496c 66 if(0.25f < _mag < 0.5f) { _x += 2; _y += 0;} else
el19zf 3:b8fbaefc496c 67 if(0.5f < _mag < 0.75f) { _x += 3; _y += 0;} else
el19zf 3:b8fbaefc496c 68 { _x += 4; _y += 0;}}
el19zf 3:b8fbaefc496c 69 if (_d == NE) {
el19zf 3:b8fbaefc496c 70 if(_mag < 0.25f) { _x += 1; _y -= 1;} else
el19zf 3:b8fbaefc496c 71 if(0.25f < _mag < 0.5f) { _x += 2; _y -= 2;} else
el19zf 3:b8fbaefc496c 72 if(0.5f < _mag < 0.75f) { _x += 3; _y -= 3;} else
el19zf 3:b8fbaefc496c 73 { _x += 4; _y -= 4;}}
el19zf 3:b8fbaefc496c 74 if (_d == N) {
el19zf 3:b8fbaefc496c 75 if(_mag < 0.25f) { _x += 0; _y -= 1;} else
el19zf 3:b8fbaefc496c 76 if(0.25f < _mag < 0.5f) { _x += 0; _y -= 2;} else
el19zf 3:b8fbaefc496c 77 if(0.5f < _mag < 0.75f) { _x += 0; _y -= 3;} else
el19zf 3:b8fbaefc496c 78 { _x += 0; _y -= 4;}}
el19zf 3:b8fbaefc496c 79 if (_d == NW) {
el19zf 3:b8fbaefc496c 80 if(_mag < 0.25f) { _x -= 1; _y -= 1;} else
el19zf 3:b8fbaefc496c 81 if(0.25f < _mag < 0.5f) { _x -= 2; _y -= 2;} else
el19zf 3:b8fbaefc496c 82 if(0.5f < _mag < 0.75f) { _x -= 3; _y -= 3;} else
el19zf 3:b8fbaefc496c 83 { _x -= 4; _y -= 4;}}
el19zf 3:b8fbaefc496c 84 if (_d == W) {
el19zf 3:b8fbaefc496c 85 if(_mag < 0.25f) { _x -= 1; _y -= 0;} else
el19zf 3:b8fbaefc496c 86 if(0.25f < _mag < 0.5f) { _x -= 2; _y -= 0;} else
el19zf 3:b8fbaefc496c 87 if(0.5f < _mag < 0.75f) { _x -= 3; _y -= 0;} else
el19zf 3:b8fbaefc496c 88 { _x -= 4; _y -= 0;}}
el19zf 3:b8fbaefc496c 89 if (_d == NW) {
el19zf 3:b8fbaefc496c 90 if(_mag < 0.25f) { _x -= 1; _y += 1;} else
el19zf 3:b8fbaefc496c 91 if(0.25f < _mag < 0.5f) { _x -= 2; _y += 2;} else
el19zf 3:b8fbaefc496c 92 if(0.5f < _mag < 0.75f) { _x -= 3; _y += 3;} else
el19zf 3:b8fbaefc496c 93 { _x -= 4; _y += 4;}}
el19zf 4:b12a49f0b730 94 //without going off screen
el19zf 4:b12a49f0b730 95 if (_x < 0) { _x = 0;} else
el19zf 4:b12a49f0b730 96 if (_x > 80) { _x = 80;} else
el19zf 4:b12a49f0b730 97 if (_y < 0) {_y = 0;} else
el19zf 4:b12a49f0b730 98 if (_y > 44) {_y = 44;}
el19zf 2:67b51ee7fc34 99 }
el19zf 2:67b51ee7fc34 100