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
TankL/TankL.cpp@7:a3ccabdebe2e, 2019-04-09 (annotated)
- Committer:
- el17mcd
- Date:
- Tue Apr 09 17:09:29 2019 +0000
- Revision:
- 7:a3ccabdebe2e
- Child:
- 8:d4e419dad90f
! Hit detection mechanic implemented with separate classes.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17mcd | 7:a3ccabdebe2e | 1 | /* TankL.cpp |
el17mcd | 7:a3ccabdebe2e | 2 | Produces tank on the left side of the |
el17mcd | 7:a3ccabdebe2e | 3 | lcd and dictates it's movement |
el17mcd | 7:a3ccabdebe2e | 4 | 1.4.19 |
el17mcd | 7:a3ccabdebe2e | 5 | */ |
el17mcd | 7:a3ccabdebe2e | 6 | |
el17mcd | 7:a3ccabdebe2e | 7 | #include "TankL.h" |
el17mcd | 7:a3ccabdebe2e | 8 | /* |
el17mcd | 7:a3ccabdebe2e | 9 | TankL::TankL() |
el17mcd | 7:a3ccabdebe2e | 10 | { |
el17mcd | 7:a3ccabdebe2e | 11 | |
el17mcd | 7:a3ccabdebe2e | 12 | } |
el17mcd | 7:a3ccabdebe2e | 13 | |
el17mcd | 7:a3ccabdebe2e | 14 | TankL::~TankL() |
el17mcd | 7:a3ccabdebe2e | 15 | { |
el17mcd | 7:a3ccabdebe2e | 16 | |
el17mcd | 7:a3ccabdebe2e | 17 | } |
el17mcd | 7:a3ccabdebe2e | 18 | */ |
el17mcd | 7:a3ccabdebe2e | 19 | void TankL::draw(N5110 &lcd) |
el17mcd | 7:a3ccabdebe2e | 20 | { |
el17mcd | 7:a3ccabdebe2e | 21 | const int tank_l_spr[6][10] = { |
el17mcd | 7:a3ccabdebe2e | 22 | { 0,0,0,1,1,1,0,0,0,0 }, |
el17mcd | 7:a3ccabdebe2e | 23 | { 0,0,1,1,1,1,1,0,0,0 }, |
el17mcd | 7:a3ccabdebe2e | 24 | { 0,0,1,1,1,1,1,1,1,0 }, |
el17mcd | 7:a3ccabdebe2e | 25 | { 1,1,1,1,1,1,1,1,1,1 }, |
el17mcd | 7:a3ccabdebe2e | 26 | { 1,0,1,0,1,0,1,0,1,0 }, |
el17mcd | 7:a3ccabdebe2e | 27 | { 0,1,0,1,0,1,0,1,0,0 }, |
el17mcd | 7:a3ccabdebe2e | 28 | }; |
el17mcd | 7:a3ccabdebe2e | 29 | lcd.drawSprite(_position_x,42 - _position_y,6,10,(int *)tank_l_spr); |
el17mcd | 7:a3ccabdebe2e | 30 | } |
el17mcd | 7:a3ccabdebe2e | 31 | |
el17mcd | 7:a3ccabdebe2e | 32 | void TankL::set_position(int x, int y) |
el17mcd | 7:a3ccabdebe2e | 33 | { |
el17mcd | 7:a3ccabdebe2e | 34 | _position_x = x; |
el17mcd | 7:a3ccabdebe2e | 35 | _position_y = y; |
el17mcd | 7:a3ccabdebe2e | 36 | } |
el17mcd | 7:a3ccabdebe2e | 37 | |
el17mcd | 7:a3ccabdebe2e | 38 | int TankL::get_position_x() |
el17mcd | 7:a3ccabdebe2e | 39 | { |
el17mcd | 7:a3ccabdebe2e | 40 | return _position_x; |
el17mcd | 7:a3ccabdebe2e | 41 | } |
el17mcd | 7:a3ccabdebe2e | 42 | |
el17mcd | 7:a3ccabdebe2e | 43 | int TankL::get_position_y() |
el17mcd | 7:a3ccabdebe2e | 44 | { |
el17mcd | 7:a3ccabdebe2e | 45 | return _position_y; |
el17mcd | 7:a3ccabdebe2e | 46 | } |
el17mcd | 7:a3ccabdebe2e | 47 | |
el17mcd | 7:a3ccabdebe2e | 48 | int TankL::get_hitbox(int i) |
el17mcd | 7:a3ccabdebe2e | 49 | { |
el17mcd | 7:a3ccabdebe2e | 50 | return _hitbox[i]; |
el17mcd | 7:a3ccabdebe2e | 51 | } |
el17mcd | 7:a3ccabdebe2e | 52 | |
el17mcd | 7:a3ccabdebe2e | 53 | void TankL::set_health(int h) |
el17mcd | 7:a3ccabdebe2e | 54 | { |
el17mcd | 7:a3ccabdebe2e | 55 | _health = h; |
el17mcd | 7:a3ccabdebe2e | 56 | } |
el17mcd | 7:a3ccabdebe2e | 57 | |
el17mcd | 7:a3ccabdebe2e | 58 | void TankL::lose_health() |
el17mcd | 7:a3ccabdebe2e | 59 | { |
el17mcd | 7:a3ccabdebe2e | 60 | _health--; |
el17mcd | 7:a3ccabdebe2e | 61 | /* if (_health <= 0) right player wins |
el17mcd | 7:a3ccabdebe2e | 62 | {} */ |
el17mcd | 7:a3ccabdebe2e | 63 | } |
el17mcd | 7:a3ccabdebe2e | 64 | |
el17mcd | 7:a3ccabdebe2e | 65 | void TankL::generate_hitbox() |
el17mcd | 7:a3ccabdebe2e | 66 | { |
el17mcd | 7:a3ccabdebe2e | 67 | int i = 0; |
el17mcd | 7:a3ccabdebe2e | 68 | for (int i0 = 0; i0 < 4; i0++) { |
el17mcd | 7:a3ccabdebe2e | 69 | |
el17mcd | 7:a3ccabdebe2e | 70 | for (int i1 = 1; i1 < 11; i1++) { |
el17mcd | 7:a3ccabdebe2e | 71 | _hitbox[i] = (i0 + _position_y) * 84 + _position_x + i1; |
el17mcd | 7:a3ccabdebe2e | 72 | i++; |
el17mcd | 7:a3ccabdebe2e | 73 | } |
el17mcd | 7:a3ccabdebe2e | 74 | } |
el17mcd | 7:a3ccabdebe2e | 75 | } |