ELEC2645 (2018/19) / Mbed 2 deprecated EL17MCD

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }