Library containing the Game Engine
GameEngine.cpp@10:df8ea4e747e2, 2017-05-03 (annotated)
- Committer:
- ll14c4p
- Date:
- Wed May 03 15:51:10 2017 +0000
- Revision:
- 10:df8ea4e747e2
- Parent:
- 9:0f359bc0922f
- Child:
- 11:832eb031310b
Added Health Bar calculations to existing functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ll14c4p | 0:5997fa876927 | 1 | #include "GameEngine.h" |
ll14c4p | 0:5997fa876927 | 2 | |
ll14c4p | 0:5997fa876927 | 3 | GameEngine::GameEngine() |
ll14c4p | 0:5997fa876927 | 4 | { |
ll14c4p | 0:5997fa876927 | 5 | |
ll14c4p | 0:5997fa876927 | 6 | } |
ll14c4p | 0:5997fa876927 | 7 | |
ll14c4p | 0:5997fa876927 | 8 | GameEngine::~GameEngine() |
ll14c4p | 0:5997fa876927 | 9 | { |
ll14c4p | 0:5997fa876927 | 10 | |
ll14c4p | 0:5997fa876927 | 11 | } |
ll14c4p | 0:5997fa876927 | 12 | |
ll14c4p | 0:5997fa876927 | 13 | void GameEngine::init() |
ll14c4p | 0:5997fa876927 | 14 | { |
ll14c4p | 10:df8ea4e747e2 | 15 | int HP = 8; |
ll14c4p | 10:df8ea4e747e2 | 16 | _hb.init(HP); |
ll14c4p | 0:5997fa876927 | 17 | |
ll14c4p | 0:5997fa876927 | 18 | } |
ll14c4p | 0:5997fa876927 | 19 | |
ll14c4p | 0:5997fa876927 | 20 | |
ll14c4p | 0:5997fa876927 | 21 | |
ll14c4p | 0:5997fa876927 | 22 | void GameEngine::read_input(Gamepad &pad) |
ll14c4p | 0:5997fa876927 | 23 | { |
ll14c4p | 0:5997fa876927 | 24 | _d = pad.get_direction(); |
ll14c4p | 0:5997fa876927 | 25 | _mag = pad.get_mag(); |
ll14c4p | 0:5997fa876927 | 26 | } |
ll14c4p | 0:5997fa876927 | 27 | |
ll14c4p | 8:bd718162a87c | 28 | void GameEngine::draw(N5110 &lcd, Gamepad &pad) |
ll14c4p | 0:5997fa876927 | 29 | { |
ll14c4p | 0:5997fa876927 | 30 | _p.draw(lcd); |
ll14c4p | 8:bd718162a87c | 31 | /*while ( pad.check_event(Gamepad::A_PRESSED) == true) { |
ll14c4p | 8:bd718162a87c | 32 | _proj.draw(lcd); |
ll14c4p | 8:bd718162a87c | 33 | }*/ |
ll14c4p | 3:2f8f003ce4fd | 34 | _proj.draw(lcd); |
ll14c4p | 6:c710fbc0f48e | 35 | _t.draw(lcd); |
ll14c4p | 8:bd718162a87c | 36 | _tt.draw(lcd); |
ll14c4p | 8:bd718162a87c | 37 | _ttt.draw(lcd); |
ll14c4p | 10:df8ea4e747e2 | 38 | _hb.draw(lcd); |
ll14c4p | 10:df8ea4e747e2 | 39 | |
ll14c4p | 0:5997fa876927 | 40 | } |
ll14c4p | 0:5997fa876927 | 41 | |
ll14c4p | 3:2f8f003ce4fd | 42 | |
ll14c4p | 0:5997fa876927 | 43 | void GameEngine::update(Gamepad &pad) |
ll14c4p | 0:5997fa876927 | 44 | { |
ll14c4p | 0:5997fa876927 | 45 | _p.update(_d,_mag); |
ll14c4p | 3:2f8f003ce4fd | 46 | _proj.update(); |
ll14c4p | 6:c710fbc0f48e | 47 | _t.update(); |
ll14c4p | 8:bd718162a87c | 48 | _tt.update(); |
ll14c4p | 8:bd718162a87c | 49 | _ttt.update(); |
ll14c4p | 7:cf6304ef44fd | 50 | CheckProjTargetCollision(pad); |
ll14c4p | 8:bd718162a87c | 51 | CheckPlayerTargetCollision(pad); |
ll14c4p | 10:df8ea4e747e2 | 52 | CheckTargetFloorCollision(pad); |
ll14c4p | 10:df8ea4e747e2 | 53 | _hb.update(); |
ll14c4p | 10:df8ea4e747e2 | 54 | |
ll14c4p | 0:5997fa876927 | 55 | } |
ll14c4p | 1:13a97de95e46 | 56 | |
ll14c4p | 1:13a97de95e46 | 57 | void GameEngine::get_pos() |
ll14c4p | 1:13a97de95e46 | 58 | { |
ll14c4p | 1:13a97de95e46 | 59 | Vector2D player_pos = _p.get_pos(); |
ll14c4p | 5:6224122fc07c | 60 | //printf("player pos = %f %f \n", player_pos.x, player_pos.y); //top left of player sprite |
ll14c4p | 4:e78f5bcddb01 | 61 | // 81.000000 0.000000 top right |
ll14c4p | 4:e78f5bcddb01 | 62 | // 0.000000 0.000000 is top left |
ll14c4p | 4:e78f5bcddb01 | 63 | // 81.000000 45.000000 bottom right |
ll14c4p | 4:e78f5bcddb01 | 64 | Vector2D proj_pos = _proj.get_pos(); |
ll14c4p | 5:6224122fc07c | 65 | //printf("proj pos = %f %f \n", proj_pos.x, proj_pos.y); |
ll14c4p | 5:6224122fc07c | 66 | |
ll14c4p | 5:6224122fc07c | 67 | playerx = player_pos.x; |
ll14c4p | 5:6224122fc07c | 68 | playery = player_pos.y; |
ll14c4p | 7:cf6304ef44fd | 69 | //printf("playerxy in GAME = %d %d \n", playerx, playery); |
ll14c4p | 5:6224122fc07c | 70 | _proj.init(playerx,playery); |
ll14c4p | 1:13a97de95e46 | 71 | |
ll14c4p | 7:cf6304ef44fd | 72 | } |
ll14c4p | 7:cf6304ef44fd | 73 | |
ll14c4p | 10:df8ea4e747e2 | 74 | |
ll14c4p | 10:df8ea4e747e2 | 75 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 76 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 77 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 78 | |
ll14c4p | 10:df8ea4e747e2 | 79 | void GameEngine::CheckTargetFloorCollision(Gamepad &pad) |
ll14c4p | 10:df8ea4e747e2 | 80 | { |
ll14c4p | 10:df8ea4e747e2 | 81 | Vector2D t_pos = _t.get_pos(); |
ll14c4p | 10:df8ea4e747e2 | 82 | Vector2D tt_pos = _tt.get_pos(); |
ll14c4p | 10:df8ea4e747e2 | 83 | Vector2D ttt_pos = _ttt.get_pos(); |
ll14c4p | 10:df8ea4e747e2 | 84 | |
ll14c4p | 10:df8ea4e747e2 | 85 | //printf("%f t_pos \n", t_pos.y); |
ll14c4p | 10:df8ea4e747e2 | 86 | //printf("%f tt_pos \n", tt_pos.y); |
ll14c4p | 10:df8ea4e747e2 | 87 | //printf("%f ttt_pos \n", ttt_pos.y); |
ll14c4p | 10:df8ea4e747e2 | 88 | |
ll14c4p | 10:df8ea4e747e2 | 89 | if(t_pos.y == 47){ |
ll14c4p | 10:df8ea4e747e2 | 90 | printf("t floor \n"); |
ll14c4p | 10:df8ea4e747e2 | 91 | HPLost2 = HPLost2 - 1; |
ll14c4p | 10:df8ea4e747e2 | 92 | } |
ll14c4p | 10:df8ea4e747e2 | 93 | if(tt_pos.y == 47){ |
ll14c4p | 10:df8ea4e747e2 | 94 | printf("tt floor \n"); |
ll14c4p | 10:df8ea4e747e2 | 95 | HPLost2 = HPLost2 - 1; |
ll14c4p | 10:df8ea4e747e2 | 96 | } |
ll14c4p | 10:df8ea4e747e2 | 97 | if(ttt_pos.y == 47){ |
ll14c4p | 10:df8ea4e747e2 | 98 | printf("ttt floor \n"); |
ll14c4p | 10:df8ea4e747e2 | 99 | HPLost2 = HPLost2 - 1; |
ll14c4p | 10:df8ea4e747e2 | 100 | } |
ll14c4p | 10:df8ea4e747e2 | 101 | |
ll14c4p | 10:df8ea4e747e2 | 102 | printf("%d HP \n", HPLost2); |
ll14c4p | 10:df8ea4e747e2 | 103 | |
ll14c4p | 10:df8ea4e747e2 | 104 | _hb.MinusHP2(HPLost2); |
ll14c4p | 10:df8ea4e747e2 | 105 | |
ll14c4p | 10:df8ea4e747e2 | 106 | } |
ll14c4p | 10:df8ea4e747e2 | 107 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 108 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 109 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 110 | |
ll14c4p | 10:df8ea4e747e2 | 111 | |
ll14c4p | 10:df8ea4e747e2 | 112 | |
ll14c4p | 10:df8ea4e747e2 | 113 | |
ll14c4p | 6:c710fbc0f48e | 114 | |
ll14c4p | 6:c710fbc0f48e | 115 | |
ll14c4p | 7:cf6304ef44fd | 116 | void GameEngine::CheckProjTargetCollision(Gamepad &pad) |
ll14c4p | 7:cf6304ef44fd | 117 | { |
ll14c4p | 10:df8ea4e747e2 | 118 | |
ll14c4p | 7:cf6304ef44fd | 119 | Vector2D proj_pos = _proj.get_pos(); |
ll14c4p | 7:cf6304ef44fd | 120 | Vector2D t_pos = _t.get_pos(); |
ll14c4p | 8:bd718162a87c | 121 | Vector2D tt_pos = _tt.get_pos(); |
ll14c4p | 8:bd718162a87c | 122 | Vector2D ttt_pos = _ttt.get_pos(); |
ll14c4p | 8:bd718162a87c | 123 | |
ll14c4p | 7:cf6304ef44fd | 124 | Vector2D player_pos = _p.get_pos(); |
ll14c4p | 8:bd718162a87c | 125 | |
ll14c4p | 7:cf6304ef44fd | 126 | // printf("proj %f %f \n", proj_pos.x, proj_pos.y); |
ll14c4p | 7:cf6304ef44fd | 127 | //printf("targ %f %f \n", t_pos.x, t_pos.y); |
ll14c4p | 7:cf6304ef44fd | 128 | |
ll14c4p | 7:cf6304ef44fd | 129 | if ( |
ll14c4p | 7:cf6304ef44fd | 130 | ((proj_pos.y == t_pos.y) || |
ll14c4p | 7:cf6304ef44fd | 131 | (proj_pos.y == t_pos.y + 1) || |
ll14c4p | 7:cf6304ef44fd | 132 | (proj_pos.y == t_pos.y + 2) || |
ll14c4p | 7:cf6304ef44fd | 133 | (proj_pos.y == t_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 134 | (proj_pos.y == t_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 135 | (proj_pos.y == t_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 136 | (proj_pos.y == t_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 137 | (proj_pos.y == t_pos.y + 7) || |
ll14c4p | 8:bd718162a87c | 138 | (proj_pos.y + 1 == t_pos.y) || |
ll14c4p | 8:bd718162a87c | 139 | (proj_pos.y + 1 == t_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 140 | (proj_pos.y + 1 == t_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 141 | (proj_pos.y + 1 == t_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 142 | (proj_pos.y + 1 == t_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 143 | (proj_pos.y + 1 == t_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 144 | (proj_pos.y + 1 == t_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 145 | (proj_pos.y + 1 == t_pos.y + 7)) && |
ll14c4p | 7:cf6304ef44fd | 146 | ((proj_pos.x == t_pos.x) || |
ll14c4p | 7:cf6304ef44fd | 147 | (proj_pos.x == t_pos.x + 1) || |
ll14c4p | 7:cf6304ef44fd | 148 | (proj_pos.x == t_pos.x + 2) || |
ll14c4p | 7:cf6304ef44fd | 149 | (proj_pos.x == t_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 150 | (proj_pos.x == t_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 151 | (proj_pos.x == t_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 152 | (proj_pos.x == t_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 153 | (proj_pos.x == t_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 154 | (proj_pos.x + 1 == t_pos.x) || |
ll14c4p | 8:bd718162a87c | 155 | (proj_pos.x + 1 == t_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 156 | (proj_pos.x + 1 == t_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 157 | (proj_pos.x + 1 == t_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 158 | (proj_pos.x + 1 == t_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 159 | (proj_pos.x + 1 == t_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 160 | (proj_pos.x + 1 == t_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 161 | (proj_pos.x + 1 == t_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 162 | (proj_pos.x + 1 == t_pos.x + 8) || |
ll14c4p | 8:bd718162a87c | 163 | (proj_pos.x + 1 == t_pos.x + 9) || |
ll14c4p | 8:bd718162a87c | 164 | (proj_pos.x + 1 == t_pos.x + 10)) |
ll14c4p | 7:cf6304ef44fd | 165 | ) { |
ll14c4p | 7:cf6304ef44fd | 166 | |
ll14c4p | 8:bd718162a87c | 167 | //printf("projtarget working \n"); |
ll14c4p | 8:bd718162a87c | 168 | proj_pos.x = player_pos.x +2; |
ll14c4p | 8:bd718162a87c | 169 | proj_pos.y = player_pos.y; |
ll14c4p | 7:cf6304ef44fd | 170 | t_pos.x = rand() % 79; |
ll14c4p | 7:cf6304ef44fd | 171 | t_pos.y = 0; |
ll14c4p | 7:cf6304ef44fd | 172 | // audio feedback |
ll14c4p | 7:cf6304ef44fd | 173 | //pad.tone(1000.0,0.1); |
ll14c4p | 7:cf6304ef44fd | 174 | } |
ll14c4p | 8:bd718162a87c | 175 | |
ll14c4p | 8:bd718162a87c | 176 | if ( |
ll14c4p | 8:bd718162a87c | 177 | ((proj_pos.y == tt_pos.y) || |
ll14c4p | 8:bd718162a87c | 178 | (proj_pos.y == tt_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 179 | (proj_pos.y == tt_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 180 | (proj_pos.y == tt_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 181 | (proj_pos.y == tt_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 182 | (proj_pos.y == tt_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 183 | (proj_pos.y == tt_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 184 | (proj_pos.y == tt_pos.y + 7) || |
ll14c4p | 8:bd718162a87c | 185 | (proj_pos.y + 1 == tt_pos.y) || |
ll14c4p | 8:bd718162a87c | 186 | (proj_pos.y + 1 == tt_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 187 | (proj_pos.y + 1 == tt_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 188 | (proj_pos.y + 1 == tt_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 189 | (proj_pos.y + 1 == tt_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 190 | (proj_pos.y + 1 == tt_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 191 | (proj_pos.y + 1 == tt_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 192 | (proj_pos.y + 1 == tt_pos.y + 7)) && |
ll14c4p | 8:bd718162a87c | 193 | ((proj_pos.x == tt_pos.x) || |
ll14c4p | 8:bd718162a87c | 194 | (proj_pos.x == tt_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 195 | (proj_pos.x == tt_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 196 | (proj_pos.x == tt_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 197 | (proj_pos.x == tt_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 198 | (proj_pos.x == tt_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 199 | (proj_pos.x == tt_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 200 | (proj_pos.x == tt_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 201 | (proj_pos.x + 1 == tt_pos.x) || |
ll14c4p | 8:bd718162a87c | 202 | (proj_pos.x + 1 == tt_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 203 | (proj_pos.x + 1 == tt_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 204 | (proj_pos.x + 1 == tt_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 205 | (proj_pos.x + 1 == tt_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 206 | (proj_pos.x + 1 == tt_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 207 | (proj_pos.x + 1 == tt_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 208 | (proj_pos.x + 1 == tt_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 209 | (proj_pos.x + 1 == tt_pos.x + 8) || |
ll14c4p | 8:bd718162a87c | 210 | (proj_pos.x + 1 == tt_pos.x + 9) || |
ll14c4p | 8:bd718162a87c | 211 | (proj_pos.x + 1 == tt_pos.x + 10)) |
ll14c4p | 8:bd718162a87c | 212 | ) { |
ll14c4p | 8:bd718162a87c | 213 | |
ll14c4p | 8:bd718162a87c | 214 | //printf("projtarget working \n"); |
ll14c4p | 8:bd718162a87c | 215 | proj_pos.x = player_pos.x +2; |
ll14c4p | 8:bd718162a87c | 216 | proj_pos.y = player_pos.y; |
ll14c4p | 8:bd718162a87c | 217 | tt_pos.x = rand() % 79; |
ll14c4p | 8:bd718162a87c | 218 | tt_pos.y = 0; |
ll14c4p | 8:bd718162a87c | 219 | // audio feedback |
ll14c4p | 8:bd718162a87c | 220 | //pad.tone(1000.0,0.1); |
ll14c4p | 8:bd718162a87c | 221 | } |
ll14c4p | 8:bd718162a87c | 222 | |
ll14c4p | 8:bd718162a87c | 223 | if ( |
ll14c4p | 8:bd718162a87c | 224 | ((proj_pos.y == ttt_pos.y) || |
ll14c4p | 8:bd718162a87c | 225 | (proj_pos.y == ttt_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 226 | (proj_pos.y == ttt_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 227 | (proj_pos.y == ttt_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 228 | (proj_pos.y == ttt_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 229 | (proj_pos.y == ttt_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 230 | (proj_pos.y == ttt_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 231 | (proj_pos.y == ttt_pos.y + 7) || |
ll14c4p | 8:bd718162a87c | 232 | (proj_pos.y + 1 == ttt_pos.y) || |
ll14c4p | 8:bd718162a87c | 233 | (proj_pos.y + 1 == ttt_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 234 | (proj_pos.y + 1 == ttt_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 235 | (proj_pos.y + 1 == ttt_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 236 | (proj_pos.y + 1 == ttt_pos.y + 4) || |
ll14c4p | 8:bd718162a87c | 237 | (proj_pos.y + 1 == ttt_pos.y + 5) || |
ll14c4p | 8:bd718162a87c | 238 | (proj_pos.y + 1 == ttt_pos.y + 6) || |
ll14c4p | 8:bd718162a87c | 239 | (proj_pos.y + 1 == ttt_pos.y + 7)) && |
ll14c4p | 8:bd718162a87c | 240 | ((proj_pos.x == ttt_pos.x) || |
ll14c4p | 8:bd718162a87c | 241 | (proj_pos.x == ttt_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 242 | (proj_pos.x == ttt_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 243 | (proj_pos.x == ttt_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 244 | (proj_pos.x == ttt_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 245 | (proj_pos.x == ttt_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 246 | (proj_pos.x == ttt_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 247 | (proj_pos.x == ttt_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 248 | (proj_pos.x + 1 == ttt_pos.x) || |
ll14c4p | 8:bd718162a87c | 249 | (proj_pos.x + 1 == ttt_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 250 | (proj_pos.x + 1 == ttt_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 251 | (proj_pos.x + 1 == ttt_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 252 | (proj_pos.x + 1 == ttt_pos.x + 4) || |
ll14c4p | 8:bd718162a87c | 253 | (proj_pos.x + 1 == ttt_pos.x + 5) || |
ll14c4p | 8:bd718162a87c | 254 | (proj_pos.x + 1 == ttt_pos.x + 6) || |
ll14c4p | 8:bd718162a87c | 255 | (proj_pos.x + 1 == ttt_pos.x + 7) || |
ll14c4p | 8:bd718162a87c | 256 | (proj_pos.x + 1 == ttt_pos.x + 8) || |
ll14c4p | 8:bd718162a87c | 257 | (proj_pos.x + 1 == ttt_pos.x + 9) || |
ll14c4p | 8:bd718162a87c | 258 | (proj_pos.x + 1 == ttt_pos.x + 10)) |
ll14c4p | 8:bd718162a87c | 259 | ) { |
ll14c4p | 8:bd718162a87c | 260 | |
ll14c4p | 8:bd718162a87c | 261 | //printf("projtarget working \n"); |
ll14c4p | 8:bd718162a87c | 262 | proj_pos.x = player_pos.x +2; |
ll14c4p | 8:bd718162a87c | 263 | proj_pos.y = player_pos.y; |
ll14c4p | 8:bd718162a87c | 264 | ttt_pos.x = rand() % 79; |
ll14c4p | 8:bd718162a87c | 265 | ttt_pos.y = 0; |
ll14c4p | 8:bd718162a87c | 266 | // audio feedback |
ll14c4p | 8:bd718162a87c | 267 | //pad.tone(1000.0,0.1); |
ll14c4p | 8:bd718162a87c | 268 | } |
ll14c4p | 8:bd718162a87c | 269 | |
ll14c4p | 7:cf6304ef44fd | 270 | |
ll14c4p | 7:cf6304ef44fd | 271 | _proj.set_pos(proj_pos); |
ll14c4p | 7:cf6304ef44fd | 272 | _t.set_pos(t_pos); |
ll14c4p | 8:bd718162a87c | 273 | _tt.set_pos(tt_pos); |
ll14c4p | 8:bd718162a87c | 274 | _ttt.set_pos(ttt_pos); |
ll14c4p | 8:bd718162a87c | 275 | |
ll14c4p | 7:cf6304ef44fd | 276 | |
ll14c4p | 7:cf6304ef44fd | 277 | } |
ll14c4p | 7:cf6304ef44fd | 278 | |
ll14c4p | 7:cf6304ef44fd | 279 | |
ll14c4p | 10:df8ea4e747e2 | 280 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 281 | ///////////////////////////////////////////// |
ll14c4p | 10:df8ea4e747e2 | 282 | ///////////////////////////////////////////// |
ll14c4p | 7:cf6304ef44fd | 283 | |
ll14c4p | 7:cf6304ef44fd | 284 | |
ll14c4p | 8:bd718162a87c | 285 | void GameEngine::CheckPlayerTargetCollision(Gamepad &pad) |
ll14c4p | 8:bd718162a87c | 286 | { |
ll14c4p | 10:df8ea4e747e2 | 287 | |
ll14c4p | 10:df8ea4e747e2 | 288 | |
ll14c4p | 10:df8ea4e747e2 | 289 | |
ll14c4p | 8:bd718162a87c | 290 | Vector2D t_pos = _t.get_pos(); |
ll14c4p | 9:0f359bc0922f | 291 | Vector2D tt_pos = _tt.get_pos(); |
ll14c4p | 9:0f359bc0922f | 292 | Vector2D ttt_pos = _ttt.get_pos(); |
ll14c4p | 8:bd718162a87c | 293 | Vector2D player_pos = _p.get_pos(); |
ll14c4p | 8:bd718162a87c | 294 | |
ll14c4p | 8:bd718162a87c | 295 | |
ll14c4p | 8:bd718162a87c | 296 | if ( |
ll14c4p | 8:bd718162a87c | 297 | ((player_pos.y == t_pos.y) || |
ll14c4p | 8:bd718162a87c | 298 | (player_pos.y == t_pos.y + 1) || |
ll14c4p | 8:bd718162a87c | 299 | (player_pos.y == t_pos.y + 2) || |
ll14c4p | 8:bd718162a87c | 300 | (player_pos.y == t_pos.y + 3) || |
ll14c4p | 8:bd718162a87c | 301 | (player_pos.y == t_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 302 | (player_pos.y == t_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 303 | (player_pos.y == t_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 304 | (player_pos.y == t_pos.y + 7) || |
ll14c4p | 9:0f359bc0922f | 305 | (player_pos.y + 4 == t_pos.y) || |
ll14c4p | 9:0f359bc0922f | 306 | (player_pos.y + 4 == t_pos.y + 1) || |
ll14c4p | 9:0f359bc0922f | 307 | (player_pos.y + 4 == t_pos.y + 2) || |
ll14c4p | 9:0f359bc0922f | 308 | (player_pos.y + 4 == t_pos.y + 3) || |
ll14c4p | 9:0f359bc0922f | 309 | (player_pos.y + 4 == t_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 310 | (player_pos.y + 4 == t_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 311 | (player_pos.y + 4 == t_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 312 | (player_pos.y + 4 == t_pos.y + 7)) && |
ll14c4p | 8:bd718162a87c | 313 | ((player_pos.x == t_pos.x) || |
ll14c4p | 8:bd718162a87c | 314 | (player_pos.x == t_pos.x + 1) || |
ll14c4p | 8:bd718162a87c | 315 | (player_pos.x == t_pos.x + 2) || |
ll14c4p | 8:bd718162a87c | 316 | (player_pos.x == t_pos.x + 3) || |
ll14c4p | 8:bd718162a87c | 317 | (player_pos.x == t_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 318 | (player_pos.x == t_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 319 | (player_pos.x == t_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 320 | (player_pos.x == t_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 321 | (player_pos.x == t_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 322 | (player_pos.x == t_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 323 | (player_pos.x == t_pos.x + 10) || |
ll14c4p | 9:0f359bc0922f | 324 | (player_pos.x + 5 == t_pos.x) || |
ll14c4p | 9:0f359bc0922f | 325 | (player_pos.x + 5 == t_pos.x + 1) || |
ll14c4p | 9:0f359bc0922f | 326 | (player_pos.x + 5 == t_pos.x + 2) || |
ll14c4p | 9:0f359bc0922f | 327 | (player_pos.x + 5 == t_pos.x + 3) || |
ll14c4p | 9:0f359bc0922f | 328 | (player_pos.x + 5 == t_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 329 | (player_pos.x + 5 == t_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 330 | (player_pos.x + 5 == t_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 331 | (player_pos.x + 5 == t_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 332 | (player_pos.x + 5 == t_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 333 | (player_pos.x + 5 == t_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 334 | (player_pos.x + 5 == t_pos.x + 10)) |
ll14c4p | 8:bd718162a87c | 335 | ) { |
ll14c4p | 8:bd718162a87c | 336 | |
ll14c4p | 10:df8ea4e747e2 | 337 | //printf("collision working3 \n"); |
ll14c4p | 8:bd718162a87c | 338 | // audio feedback |
ll14c4p | 8:bd718162a87c | 339 | //pad.tone(1000.0,0.1); |
ll14c4p | 8:bd718162a87c | 340 | t_pos.x = rand() % 79; |
ll14c4p | 9:0f359bc0922f | 341 | t_pos.y = 0; |
ll14c4p | 10:df8ea4e747e2 | 342 | |
ll14c4p | 10:df8ea4e747e2 | 343 | HPLost1 = HPLost1 - 1; |
ll14c4p | 10:df8ea4e747e2 | 344 | |
ll14c4p | 9:0f359bc0922f | 345 | } |
ll14c4p | 9:0f359bc0922f | 346 | |
ll14c4p | 9:0f359bc0922f | 347 | if ( |
ll14c4p | 9:0f359bc0922f | 348 | ((player_pos.y == tt_pos.y) || |
ll14c4p | 9:0f359bc0922f | 349 | (player_pos.y == tt_pos.y + 1) || |
ll14c4p | 9:0f359bc0922f | 350 | (player_pos.y == tt_pos.y + 2) || |
ll14c4p | 9:0f359bc0922f | 351 | (player_pos.y == tt_pos.y + 3) || |
ll14c4p | 9:0f359bc0922f | 352 | (player_pos.y == tt_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 353 | (player_pos.y == tt_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 354 | (player_pos.y == tt_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 355 | (player_pos.y == tt_pos.y + 7) || |
ll14c4p | 9:0f359bc0922f | 356 | (player_pos.y + 4 == tt_pos.y) || |
ll14c4p | 9:0f359bc0922f | 357 | (player_pos.y + 4 == tt_pos.y + 1) || |
ll14c4p | 9:0f359bc0922f | 358 | (player_pos.y + 4 == tt_pos.y + 2) || |
ll14c4p | 9:0f359bc0922f | 359 | (player_pos.y + 4 == tt_pos.y + 3) || |
ll14c4p | 9:0f359bc0922f | 360 | (player_pos.y + 4 == tt_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 361 | (player_pos.y + 4 == tt_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 362 | (player_pos.y + 4 == tt_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 363 | (player_pos.y + 4 == tt_pos.y + 7)) && |
ll14c4p | 9:0f359bc0922f | 364 | ((player_pos.x == tt_pos.x) || |
ll14c4p | 9:0f359bc0922f | 365 | (player_pos.x == tt_pos.x + 1) || |
ll14c4p | 9:0f359bc0922f | 366 | (player_pos.x == tt_pos.x + 2) || |
ll14c4p | 9:0f359bc0922f | 367 | (player_pos.x == tt_pos.x + 3) || |
ll14c4p | 9:0f359bc0922f | 368 | (player_pos.x == tt_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 369 | (player_pos.x == tt_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 370 | (player_pos.x == tt_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 371 | (player_pos.x == tt_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 372 | (player_pos.x == tt_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 373 | (player_pos.x == tt_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 374 | (player_pos.x == tt_pos.x + 10) || |
ll14c4p | 9:0f359bc0922f | 375 | (player_pos.x + 5 == tt_pos.x) || |
ll14c4p | 9:0f359bc0922f | 376 | (player_pos.x + 5 == tt_pos.x + 1) || |
ll14c4p | 9:0f359bc0922f | 377 | (player_pos.x + 5 == tt_pos.x + 2) || |
ll14c4p | 9:0f359bc0922f | 378 | (player_pos.x + 5 == tt_pos.x + 3) || |
ll14c4p | 9:0f359bc0922f | 379 | (player_pos.x + 5 == tt_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 380 | (player_pos.x + 5 == tt_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 381 | (player_pos.x + 5 == tt_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 382 | (player_pos.x + 5 == tt_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 383 | (player_pos.x + 5 == tt_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 384 | (player_pos.x + 5 == tt_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 385 | (player_pos.x + 5 == tt_pos.x + 10)) |
ll14c4p | 9:0f359bc0922f | 386 | ) { |
ll14c4p | 8:bd718162a87c | 387 | |
ll14c4p | 10:df8ea4e747e2 | 388 | //printf("collision working2 \n"); |
ll14c4p | 9:0f359bc0922f | 389 | // audio feedback |
ll14c4p | 9:0f359bc0922f | 390 | //pad.tone(1000.0,0.1); |
ll14c4p | 9:0f359bc0922f | 391 | tt_pos.x = rand() % 79; |
ll14c4p | 9:0f359bc0922f | 392 | tt_pos.y = 0; |
ll14c4p | 10:df8ea4e747e2 | 393 | |
ll14c4p | 10:df8ea4e747e2 | 394 | HPLost1 = HPLost1 - 1; |
ll14c4p | 10:df8ea4e747e2 | 395 | |
ll14c4p | 9:0f359bc0922f | 396 | } |
ll14c4p | 9:0f359bc0922f | 397 | |
ll14c4p | 9:0f359bc0922f | 398 | if ( |
ll14c4p | 9:0f359bc0922f | 399 | ((player_pos.y == ttt_pos.y) || |
ll14c4p | 9:0f359bc0922f | 400 | (player_pos.y == ttt_pos.y + 1) || |
ll14c4p | 9:0f359bc0922f | 401 | (player_pos.y == ttt_pos.y + 2) || |
ll14c4p | 9:0f359bc0922f | 402 | (player_pos.y == ttt_pos.y + 3) || |
ll14c4p | 9:0f359bc0922f | 403 | (player_pos.y == ttt_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 404 | (player_pos.y == ttt_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 405 | (player_pos.y == ttt_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 406 | (player_pos.y == ttt_pos.y + 7) || |
ll14c4p | 9:0f359bc0922f | 407 | (player_pos.y + 4 == ttt_pos.y) || |
ll14c4p | 9:0f359bc0922f | 408 | (player_pos.y + 4 == ttt_pos.y + 1) || |
ll14c4p | 9:0f359bc0922f | 409 | (player_pos.y + 4 == ttt_pos.y + 2) || |
ll14c4p | 9:0f359bc0922f | 410 | (player_pos.y + 4 == ttt_pos.y + 3) || |
ll14c4p | 9:0f359bc0922f | 411 | (player_pos.y + 4 == ttt_pos.y + 4) || |
ll14c4p | 9:0f359bc0922f | 412 | (player_pos.y + 4 == ttt_pos.y + 5) || |
ll14c4p | 9:0f359bc0922f | 413 | (player_pos.y + 4 == ttt_pos.y + 6) || |
ll14c4p | 9:0f359bc0922f | 414 | (player_pos.y + 4 == ttt_pos.y + 7)) && |
ll14c4p | 9:0f359bc0922f | 415 | ((player_pos.x == ttt_pos.x) || |
ll14c4p | 9:0f359bc0922f | 416 | (player_pos.x == ttt_pos.x + 1) || |
ll14c4p | 9:0f359bc0922f | 417 | (player_pos.x == ttt_pos.x + 2) || |
ll14c4p | 9:0f359bc0922f | 418 | (player_pos.x == ttt_pos.x + 3) || |
ll14c4p | 9:0f359bc0922f | 419 | (player_pos.x == ttt_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 420 | (player_pos.x == ttt_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 421 | (player_pos.x == ttt_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 422 | (player_pos.x == ttt_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 423 | (player_pos.x == ttt_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 424 | (player_pos.x == ttt_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 425 | (player_pos.x == ttt_pos.x + 10) || |
ll14c4p | 9:0f359bc0922f | 426 | (player_pos.x + 5 == ttt_pos.x) || |
ll14c4p | 9:0f359bc0922f | 427 | (player_pos.x + 5 == ttt_pos.x + 1) || |
ll14c4p | 9:0f359bc0922f | 428 | (player_pos.x + 5 == ttt_pos.x + 2) || |
ll14c4p | 9:0f359bc0922f | 429 | (player_pos.x + 5 == ttt_pos.x + 3) || |
ll14c4p | 9:0f359bc0922f | 430 | (player_pos.x + 5 == ttt_pos.x + 4) || |
ll14c4p | 9:0f359bc0922f | 431 | (player_pos.x + 5 == ttt_pos.x + 5) || |
ll14c4p | 9:0f359bc0922f | 432 | (player_pos.x + 5 == ttt_pos.x + 6) || |
ll14c4p | 9:0f359bc0922f | 433 | (player_pos.x + 5 == ttt_pos.x + 7) || |
ll14c4p | 9:0f359bc0922f | 434 | (player_pos.x + 5 == ttt_pos.x + 8) || |
ll14c4p | 9:0f359bc0922f | 435 | (player_pos.x + 5 == ttt_pos.x + 9) || |
ll14c4p | 9:0f359bc0922f | 436 | (player_pos.x + 5 == ttt_pos.x + 10)) |
ll14c4p | 9:0f359bc0922f | 437 | ) { |
ll14c4p | 9:0f359bc0922f | 438 | |
ll14c4p | 10:df8ea4e747e2 | 439 | //printf("collision working1 \n"); |
ll14c4p | 9:0f359bc0922f | 440 | // audio feedback |
ll14c4p | 9:0f359bc0922f | 441 | //pad.tone(1000.0,0.1); |
ll14c4p | 9:0f359bc0922f | 442 | ttt_pos.x = rand() % 79; |
ll14c4p | 9:0f359bc0922f | 443 | ttt_pos.y = 0; |
ll14c4p | 10:df8ea4e747e2 | 444 | |
ll14c4p | 10:df8ea4e747e2 | 445 | HPLost1 = HPLost1 - 1; |
ll14c4p | 10:df8ea4e747e2 | 446 | |
ll14c4p | 8:bd718162a87c | 447 | } |
ll14c4p | 8:bd718162a87c | 448 | |
ll14c4p | 10:df8ea4e747e2 | 449 | //printf("%d", HPLost1); //Kind of working?? |
ll14c4p | 8:bd718162a87c | 450 | _t.set_pos(t_pos); |
ll14c4p | 9:0f359bc0922f | 451 | _tt.set_pos(tt_pos); |
ll14c4p | 9:0f359bc0922f | 452 | _ttt.set_pos(ttt_pos); |
ll14c4p | 10:df8ea4e747e2 | 453 | _hb.MinusHP1(HPLost1); |
ll14c4p | 8:bd718162a87c | 454 | } |
ll14c4p | 8:bd718162a87c | 455 | |
ll14c4p | 8:bd718162a87c | 456 | |
ll14c4p | 8:bd718162a87c | 457 | |
ll14c4p | 8:bd718162a87c | 458 | |
ll14c4p | 8:bd718162a87c | 459 | |
ll14c4p | 8:bd718162a87c | 460 | |
ll14c4p | 7:cf6304ef44fd | 461 | |
ll14c4p | 7:cf6304ef44fd | 462 |