Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
PeopleEngine/People.cpp@12:009895f6b6e4, 2020-05-11 (annotated)
- Committer:
- el19zf
- Date:
- Mon May 11 14:43:16 2020 +0000
- Revision:
- 12:009895f6b6e4
- Parent:
- 9:62d6559f0d50
- Child:
- 13:eb60628db8bf
add a test file and optimzed code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el19zf | 2:67b51ee7fc34 | 1 | #include "People.h" |
el19zf | 9:62d6559f0d50 | 2 | #define INIT_x 1 |
el19zf | 9:62d6559f0d50 | 3 | #define INIT_y 23 |
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 | 12:009895f6b6e4 | 58 | { _x += 0; _y += 4;}}else |
el19zf | 12:009895f6b6e4 | 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 | 12:009895f6b6e4 | 63 | { _x += 4; _y += 4;}}else |
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 | 12:009895f6b6e4 | 68 | { _x += 4; _y += 0;}}else |
el19zf | 12:009895f6b6e4 | 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 | 12:009895f6b6e4 | 73 | { _x += 4; _y -= 4;}}else |
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 | 12:009895f6b6e4 | 78 | { _x += 0; _y -= 4;}}else |
el19zf | 12:009895f6b6e4 | 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 | 12:009895f6b6e4 | 83 | { _x -= 4; _y -= 4;}}else |
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 | 12:009895f6b6e4 | 88 | { _x -= 4; _y -= 0;}}else |
el19zf | 12:009895f6b6e4 | 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 | 8:8287d2ef965d | 95 | if (_x < 1) { _x = 1;} else |
el19zf | 8:8287d2ef965d | 96 | if (_x > 79) { _x = 79;} else |
el19zf | 8:8287d2ef965d | 97 | if (_y < 1) {_y = 1;} else |
el19zf | 8:8287d2ef965d | 98 | if (_y > 43) {_y = 43;} |
el19zf | 2:67b51ee7fc34 | 99 | } |
el19zf | 2:67b51ee7fc34 | 100 |