My platformer project
Dependencies: Finalproject N5110 mbed
Character/Character.cpp@0:5dd225e2621d, 2017-05-05 (annotated)
- Committer:
- lion152
- Date:
- Fri May 05 15:00:33 2017 +0000
- Revision:
- 0:5dd225e2621d
Finished in one go
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lion152 | 0:5dd225e2621d | 1 | #include "Character.h" |
lion152 | 0:5dd225e2621d | 2 | #include "N5110.h" |
lion152 | 0:5dd225e2621d | 3 | #include "mbed.h" |
lion152 | 0:5dd225e2621d | 4 | #include "Enemy.h" |
lion152 | 0:5dd225e2621d | 5 | //Serial pc(USBTX, USBRX); |
lion152 | 0:5dd225e2621d | 6 | |
lion152 | 0:5dd225e2621d | 7 | //Constructor |
lion152 | 0:5dd225e2621d | 8 | Character::Character(int x, int y) |
lion152 | 0:5dd225e2621d | 9 | { |
lion152 | 0:5dd225e2621d | 10 | this->x=x; |
lion152 | 0:5dd225e2621d | 11 | this->y=y; |
lion152 | 0:5dd225e2621d | 12 | width=8; |
lion152 | 0:5dd225e2621d | 13 | height=10; |
lion152 | 0:5dd225e2621d | 14 | force=0.0f; |
lion152 | 0:5dd225e2621d | 15 | floatY=0.0f; |
lion152 | 0:5dd225e2621d | 16 | } |
lion152 | 0:5dd225e2621d | 17 | |
lion152 | 0:5dd225e2621d | 18 | //Destructor |
lion152 | 0:5dd225e2621d | 19 | Character::~Character() |
lion152 | 0:5dd225e2621d | 20 | { |
lion152 | 0:5dd225e2621d | 21 | |
lion152 | 0:5dd225e2621d | 22 | } |
lion152 | 0:5dd225e2621d | 23 | |
lion152 | 0:5dd225e2621d | 24 | //////////////DRAW - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 25 | /** |
lion152 | 0:5dd225e2621d | 26 | @details Handles character drawing on the screen |
lion152 | 0:5dd225e2621d | 27 | */ |
lion152 | 0:5dd225e2621d | 28 | void Character::draw(N5110 &lcd, int absoluteCoord, bool white ) |
lion152 | 0:5dd225e2621d | 29 | { |
lion152 | 0:5dd225e2621d | 30 | white = !white; |
lion152 | 0:5dd225e2621d | 31 | //pc.printf("%d\n",x); |
lion152 | 0:5dd225e2621d | 32 | //pc.printf("%d\n",y); |
lion152 | 0:5dd225e2621d | 33 | //head |
lion152 | 0:5dd225e2621d | 34 | lcd.setPixel(x-absoluteCoord,y-9, white); |
lion152 | 0:5dd225e2621d | 35 | lcd.setPixel(x+1-absoluteCoord,y-9, white); |
lion152 | 0:5dd225e2621d | 36 | lcd.setPixel(x+2-absoluteCoord,y-9, white); |
lion152 | 0:5dd225e2621d | 37 | lcd.setPixel(x+3-absoluteCoord,y-9, white); |
lion152 | 0:5dd225e2621d | 38 | lcd.setPixel(x+4-absoluteCoord,y-9, white); |
lion152 | 0:5dd225e2621d | 39 | lcd.setPixel(x+1-absoluteCoord,y-8, white); |
lion152 | 0:5dd225e2621d | 40 | lcd.setPixel(x+2-absoluteCoord,y-8, white); |
lion152 | 0:5dd225e2621d | 41 | lcd.setPixel(x+4-absoluteCoord,y-8, white); |
lion152 | 0:5dd225e2621d | 42 | lcd.setPixel(x+2-absoluteCoord,y-7, white); |
lion152 | 0:5dd225e2621d | 43 | lcd.setPixel(x+3-absoluteCoord,y-7, white); |
lion152 | 0:5dd225e2621d | 44 | lcd.setPixel(x+4-absoluteCoord,y-7, white); |
lion152 | 0:5dd225e2621d | 45 | |
lion152 | 0:5dd225e2621d | 46 | //body |
lion152 | 0:5dd225e2621d | 47 | lcd.setPixel(x+1-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 48 | lcd.setPixel(x+2-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 49 | lcd.setPixel(x+3-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 50 | lcd.setPixel(x+5-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 51 | lcd.setPixel(x+6-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 52 | lcd.setPixel(x+7-absoluteCoord,y-6, white); |
lion152 | 0:5dd225e2621d | 53 | lcd.setPixel(x+1-absoluteCoord,y-5, white); |
lion152 | 0:5dd225e2621d | 54 | lcd.setPixel(x+2-absoluteCoord,y-5, white); |
lion152 | 0:5dd225e2621d | 55 | lcd.setPixel(x+3-absoluteCoord,y-5, white); |
lion152 | 0:5dd225e2621d | 56 | lcd.setPixel(x+4-absoluteCoord,y-5, white); |
lion152 | 0:5dd225e2621d | 57 | lcd.setPixel(x+5-absoluteCoord,y-5, white); |
lion152 | 0:5dd225e2621d | 58 | lcd.setPixel(x+2-absoluteCoord,y-4, white); |
lion152 | 0:5dd225e2621d | 59 | lcd.setPixel(x+3-absoluteCoord,y-4, white); |
lion152 | 0:5dd225e2621d | 60 | lcd.setPixel(x+2-absoluteCoord,y-3, white); |
lion152 | 0:5dd225e2621d | 61 | lcd.setPixel(x+3-absoluteCoord,y-3, white); |
lion152 | 0:5dd225e2621d | 62 | |
lion152 | 0:5dd225e2621d | 63 | //legs |
lion152 | 0:5dd225e2621d | 64 | lcd.setPixel(x+1-absoluteCoord,y-2, white); |
lion152 | 0:5dd225e2621d | 65 | lcd.setPixel(x+4-absoluteCoord,y-2, white); |
lion152 | 0:5dd225e2621d | 66 | lcd.setPixel(x+1-absoluteCoord,y-1, white); |
lion152 | 0:5dd225e2621d | 67 | lcd.setPixel(x+4-absoluteCoord,y-1, white); |
lion152 | 0:5dd225e2621d | 68 | lcd.setPixel(x+1-absoluteCoord,y, white); |
lion152 | 0:5dd225e2621d | 69 | lcd.setPixel(x+2-absoluteCoord,y, white); |
lion152 | 0:5dd225e2621d | 70 | lcd.setPixel(x+4-absoluteCoord,y, white); |
lion152 | 0:5dd225e2621d | 71 | lcd.setPixel(x+5-absoluteCoord,y, white); |
lion152 | 0:5dd225e2621d | 72 | } |
lion152 | 0:5dd225e2621d | 73 | //////////////CHARACTERORENEMYDEATH - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 74 | /** |
lion152 | 0:5dd225e2621d | 75 | @details function that decides does enemy or character dies |
lion152 | 0:5dd225e2621d | 76 | */ |
lion152 | 0:5dd225e2621d | 77 | void Character::characterOrEnemyDeath(deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 78 | { |
lion152 | 0:5dd225e2621d | 79 | if(force<0) |
lion152 | 0:5dd225e2621d | 80 | { |
lion152 | 0:5dd225e2621d | 81 | deque<Enemy*>::iterator it; |
lion152 | 0:5dd225e2621d | 82 | //enemy death |
lion152 | 0:5dd225e2621d | 83 | if((it = collisionEnemyS(enemyMap))!= enemyMap->end()) |
lion152 | 0:5dd225e2621d | 84 | { |
lion152 | 0:5dd225e2621d | 85 | enemyMap->erase(it); |
lion152 | 0:5dd225e2621d | 86 | force=0.73; |
lion152 | 0:5dd225e2621d | 87 | } |
lion152 | 0:5dd225e2621d | 88 | } |
lion152 | 0:5dd225e2621d | 89 | //character death |
lion152 | 0:5dd225e2621d | 90 | if(collisionEnemyW(enemyMap)||collisionEnemyE(enemyMap)||collisionEnemyN(enemyMap)) |
lion152 | 0:5dd225e2621d | 91 | { |
lion152 | 0:5dd225e2621d | 92 | x=-20; |
lion152 | 0:5dd225e2621d | 93 | y=48; |
lion152 | 0:5dd225e2621d | 94 | } |
lion152 | 0:5dd225e2621d | 95 | } |
lion152 | 0:5dd225e2621d | 96 | //////////////RISE - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 97 | /** |
lion152 | 0:5dd225e2621d | 98 | @details Function that handles character jumping and acceleration during jump |
lion152 | 0:5dd225e2621d | 99 | */ |
lion152 | 0:5dd225e2621d | 100 | void Character::rise(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 101 | { |
lion152 | 0:5dd225e2621d | 102 | if (collisionPlatformN(levelMap)) |
lion152 | 0:5dd225e2621d | 103 | { |
lion152 | 0:5dd225e2621d | 104 | //pc.printf("%d",y); |
lion152 | 0:5dd225e2621d | 105 | force=-0.4f; |
lion152 | 0:5dd225e2621d | 106 | } |
lion152 | 0:5dd225e2621d | 107 | if(force>0.0f) |
lion152 | 0:5dd225e2621d | 108 | { |
lion152 | 0:5dd225e2621d | 109 | floatY-=force; |
lion152 | 0:5dd225e2621d | 110 | force-=0.11f; |
lion152 | 0:5dd225e2621d | 111 | y=floor(floatY+0.5f); |
lion152 | 0:5dd225e2621d | 112 | } |
lion152 | 0:5dd225e2621d | 113 | } |
lion152 | 0:5dd225e2621d | 114 | |
lion152 | 0:5dd225e2621d | 115 | //////////////FALL - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 116 | /** |
lion152 | 0:5dd225e2621d | 117 | @details Function that handles character falling after the jump |
lion152 | 0:5dd225e2621d | 118 | */ |
lion152 | 0:5dd225e2621d | 119 | void Character::fall(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 120 | { |
lion152 | 0:5dd225e2621d | 121 | if (collisionPlatformS(levelMap)) |
lion152 | 0:5dd225e2621d | 122 | { |
lion152 | 0:5dd225e2621d | 123 | force=0.0f; |
lion152 | 0:5dd225e2621d | 124 | } |
lion152 | 0:5dd225e2621d | 125 | if(force<0.0f) |
lion152 | 0:5dd225e2621d | 126 | { |
lion152 | 0:5dd225e2621d | 127 | floatY-=force; |
lion152 | 0:5dd225e2621d | 128 | if(force>-1) |
lion152 | 0:5dd225e2621d | 129 | { |
lion152 | 0:5dd225e2621d | 130 | force-=0.11f; |
lion152 | 0:5dd225e2621d | 131 | } |
lion152 | 0:5dd225e2621d | 132 | y=floor(floatY+0.5f); |
lion152 | 0:5dd225e2621d | 133 | } |
lion152 | 0:5dd225e2621d | 134 | } |
lion152 | 0:5dd225e2621d | 135 | |
lion152 | 0:5dd225e2621d | 136 | //////////////RISE - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 137 | /** |
lion152 | 0:5dd225e2621d | 138 | @details Function that handles character movement |
lion152 | 0:5dd225e2621d | 139 | *in addition it increases absolute coordinate of the screen |
lion152 | 0:5dd225e2621d | 140 | */ |
lion152 | 0:5dd225e2621d | 141 | void Character::movement(Direction d, int* absoluteCoord, deque<Platform*>* levelMap, deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 142 | { |
lion152 | 0:5dd225e2621d | 143 | //pc.printf("%d\n",*absoluteCoord); |
lion152 | 0:5dd225e2621d | 144 | //pc.printf("move right \n"); |
lion152 | 0:5dd225e2621d | 145 | if ((d==E)||(d==NE)) |
lion152 | 0:5dd225e2621d | 146 | { |
lion152 | 0:5dd225e2621d | 147 | //pc.printf("move right \n"); |
lion152 | 0:5dd225e2621d | 148 | if (!collisionPlatformE(levelMap)) |
lion152 | 0:5dd225e2621d | 149 | { |
lion152 | 0:5dd225e2621d | 150 | x++; |
lion152 | 0:5dd225e2621d | 151 | if((x-(*absoluteCoord))>(28-width/2)) |
lion152 | 0:5dd225e2621d | 152 | { |
lion152 | 0:5dd225e2621d | 153 | (*absoluteCoord)++; |
lion152 | 0:5dd225e2621d | 154 | //pc.printf("%d\n", (*absoluteCoord)); |
lion152 | 0:5dd225e2621d | 155 | } |
lion152 | 0:5dd225e2621d | 156 | } |
lion152 | 0:5dd225e2621d | 157 | } |
lion152 | 0:5dd225e2621d | 158 | else if (((d==W)||(d==NW))&&((x-*absoluteCoord)>0)) |
lion152 | 0:5dd225e2621d | 159 | { |
lion152 | 0:5dd225e2621d | 160 | if (!collisionPlatformW(levelMap)) |
lion152 | 0:5dd225e2621d | 161 | { |
lion152 | 0:5dd225e2621d | 162 | x--; |
lion152 | 0:5dd225e2621d | 163 | } |
lion152 | 0:5dd225e2621d | 164 | } |
lion152 | 0:5dd225e2621d | 165 | if(force==0.0f) |
lion152 | 0:5dd225e2621d | 166 | { |
lion152 | 0:5dd225e2621d | 167 | if ((d==NW)||(d==N)||(d==NE)) |
lion152 | 0:5dd225e2621d | 168 | { |
lion152 | 0:5dd225e2621d | 169 | force=1.5f; |
lion152 | 0:5dd225e2621d | 170 | floatY=y; |
lion152 | 0:5dd225e2621d | 171 | } |
lion152 | 0:5dd225e2621d | 172 | } |
lion152 | 0:5dd225e2621d | 173 | noPlatformFall(levelMap); |
lion152 | 0:5dd225e2621d | 174 | rise(levelMap); |
lion152 | 0:5dd225e2621d | 175 | fall(levelMap); |
lion152 | 0:5dd225e2621d | 176 | characterOrEnemyDeath(enemyMap); |
lion152 | 0:5dd225e2621d | 177 | } |
lion152 | 0:5dd225e2621d | 178 | |
lion152 | 0:5dd225e2621d | 179 | //////////////NOPLATFORMFALL - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 180 | /** |
lion152 | 0:5dd225e2621d | 181 | @details implements falling donw when character walks off the platform |
lion152 | 0:5dd225e2621d | 182 | */ |
lion152 | 0:5dd225e2621d | 183 | void Character::noPlatformFall(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 184 | { |
lion152 | 0:5dd225e2621d | 185 | if((!collisionPlatformS(levelMap)) && (force==0.0f)) |
lion152 | 0:5dd225e2621d | 186 | { |
lion152 | 0:5dd225e2621d | 187 | force=-0.04f; |
lion152 | 0:5dd225e2621d | 188 | floatY=y; |
lion152 | 0:5dd225e2621d | 189 | } |
lion152 | 0:5dd225e2621d | 190 | } |
lion152 | 0:5dd225e2621d | 191 | |
lion152 | 0:5dd225e2621d | 192 | //////////////COLLISIONPLATFORME - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 193 | /** |
lion152 | 0:5dd225e2621d | 194 | @details Function that checks collision to the right of the character with each platform |
lion152 | 0:5dd225e2621d | 195 | */ |
lion152 | 0:5dd225e2621d | 196 | bool Character::collisionPlatformE(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 197 | { |
lion152 | 0:5dd225e2621d | 198 | for(deque<Platform*>::iterator it=levelMap->begin(); it !=levelMap->end();) |
lion152 | 0:5dd225e2621d | 199 | { |
lion152 | 0:5dd225e2621d | 200 | Platform* p=*it; |
lion152 | 0:5dd225e2621d | 201 | if (collisionLeftUpE(*p)) |
lion152 | 0:5dd225e2621d | 202 | { |
lion152 | 0:5dd225e2621d | 203 | return true; |
lion152 | 0:5dd225e2621d | 204 | } |
lion152 | 0:5dd225e2621d | 205 | it++; |
lion152 | 0:5dd225e2621d | 206 | } |
lion152 | 0:5dd225e2621d | 207 | return false; |
lion152 | 0:5dd225e2621d | 208 | } |
lion152 | 0:5dd225e2621d | 209 | |
lion152 | 0:5dd225e2621d | 210 | //////////////COLLISIONPLATFORMW - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 211 | /** |
lion152 | 0:5dd225e2621d | 212 | @details Function that checks collision to the left of the character with each platform |
lion152 | 0:5dd225e2621d | 213 | */ |
lion152 | 0:5dd225e2621d | 214 | bool Character::collisionPlatformW(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 215 | { |
lion152 | 0:5dd225e2621d | 216 | for(deque<Platform*>::iterator it=levelMap->begin(); it !=levelMap->end();) |
lion152 | 0:5dd225e2621d | 217 | { |
lion152 | 0:5dd225e2621d | 218 | Platform* p=*it; |
lion152 | 0:5dd225e2621d | 219 | if (collisionLeftUpW(*p)) |
lion152 | 0:5dd225e2621d | 220 | { |
lion152 | 0:5dd225e2621d | 221 | return true; |
lion152 | 0:5dd225e2621d | 222 | } |
lion152 | 0:5dd225e2621d | 223 | it++; |
lion152 | 0:5dd225e2621d | 224 | } |
lion152 | 0:5dd225e2621d | 225 | return false; |
lion152 | 0:5dd225e2621d | 226 | } |
lion152 | 0:5dd225e2621d | 227 | |
lion152 | 0:5dd225e2621d | 228 | //////////////COLLISIONPLATFORMS - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 229 | /** |
lion152 | 0:5dd225e2621d | 230 | @details Function that checks collision bellow the character with each platform |
lion152 | 0:5dd225e2621d | 231 | */ |
lion152 | 0:5dd225e2621d | 232 | bool Character::collisionPlatformS(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 233 | { |
lion152 | 0:5dd225e2621d | 234 | for(deque<Platform*>::iterator it=levelMap->begin(); it !=levelMap->end();) |
lion152 | 0:5dd225e2621d | 235 | { |
lion152 | 0:5dd225e2621d | 236 | Platform* p=*it; |
lion152 | 0:5dd225e2621d | 237 | if (collisionLeftUpS(*p)) |
lion152 | 0:5dd225e2621d | 238 | { |
lion152 | 0:5dd225e2621d | 239 | //pc.printf("ychar - %d\n", y); |
lion152 | 0:5dd225e2621d | 240 | //pc.printf("y-heightplatf - %d", p->getY() - p->getHeight()); |
lion152 | 0:5dd225e2621d | 241 | return true; |
lion152 | 0:5dd225e2621d | 242 | } |
lion152 | 0:5dd225e2621d | 243 | it++; |
lion152 | 0:5dd225e2621d | 244 | } |
lion152 | 0:5dd225e2621d | 245 | return false; |
lion152 | 0:5dd225e2621d | 246 | } |
lion152 | 0:5dd225e2621d | 247 | |
lion152 | 0:5dd225e2621d | 248 | //////////////COLLISIONPLATFORMN - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 249 | /** |
lion152 | 0:5dd225e2621d | 250 | @details Function that checks collision above the character with each platform |
lion152 | 0:5dd225e2621d | 251 | */ |
lion152 | 0:5dd225e2621d | 252 | bool Character::collisionPlatformN(deque<Platform*>* levelMap) |
lion152 | 0:5dd225e2621d | 253 | { |
lion152 | 0:5dd225e2621d | 254 | for(deque<Platform*>::iterator it=levelMap->begin(); it !=levelMap->end();) |
lion152 | 0:5dd225e2621d | 255 | { |
lion152 | 0:5dd225e2621d | 256 | Platform* p=*it; |
lion152 | 0:5dd225e2621d | 257 | if (collisionLeftUpN(*p)) |
lion152 | 0:5dd225e2621d | 258 | { |
lion152 | 0:5dd225e2621d | 259 | return true; |
lion152 | 0:5dd225e2621d | 260 | } |
lion152 | 0:5dd225e2621d | 261 | it++; |
lion152 | 0:5dd225e2621d | 262 | } |
lion152 | 0:5dd225e2621d | 263 | return false; |
lion152 | 0:5dd225e2621d | 264 | } |
lion152 | 0:5dd225e2621d | 265 | |
lion152 | 0:5dd225e2621d | 266 | //////////////COLLISIONENEMYE - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 267 | /** |
lion152 | 0:5dd225e2621d | 268 | @details Function that checks collision to the right of the character with each enemy |
lion152 | 0:5dd225e2621d | 269 | */ |
lion152 | 0:5dd225e2621d | 270 | bool Character::collisionEnemyE(deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 271 | { |
lion152 | 0:5dd225e2621d | 272 | for(deque<Enemy*>::iterator it=enemyMap->begin(); it !=enemyMap->end();) |
lion152 | 0:5dd225e2621d | 273 | { |
lion152 | 0:5dd225e2621d | 274 | Enemy* e=*it; |
lion152 | 0:5dd225e2621d | 275 | if (touchLeftDownE(*e)) |
lion152 | 0:5dd225e2621d | 276 | { |
lion152 | 0:5dd225e2621d | 277 | return true; |
lion152 | 0:5dd225e2621d | 278 | } |
lion152 | 0:5dd225e2621d | 279 | it++; |
lion152 | 0:5dd225e2621d | 280 | } |
lion152 | 0:5dd225e2621d | 281 | return false; |
lion152 | 0:5dd225e2621d | 282 | } |
lion152 | 0:5dd225e2621d | 283 | |
lion152 | 0:5dd225e2621d | 284 | //////////////COLLISIONENEMYW - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 285 | /** |
lion152 | 0:5dd225e2621d | 286 | @details Function that checks collision to the left of the character with each enemy |
lion152 | 0:5dd225e2621d | 287 | */ |
lion152 | 0:5dd225e2621d | 288 | bool Character::collisionEnemyW(deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 289 | { |
lion152 | 0:5dd225e2621d | 290 | for(deque<Enemy*>::iterator it=enemyMap->begin(); it !=enemyMap->end();) |
lion152 | 0:5dd225e2621d | 291 | { |
lion152 | 0:5dd225e2621d | 292 | Enemy* e=*it; |
lion152 | 0:5dd225e2621d | 293 | if (touchLeftDownW(*e)) |
lion152 | 0:5dd225e2621d | 294 | { |
lion152 | 0:5dd225e2621d | 295 | return true; |
lion152 | 0:5dd225e2621d | 296 | } |
lion152 | 0:5dd225e2621d | 297 | it++; |
lion152 | 0:5dd225e2621d | 298 | } |
lion152 | 0:5dd225e2621d | 299 | return false; |
lion152 | 0:5dd225e2621d | 300 | } |
lion152 | 0:5dd225e2621d | 301 | |
lion152 | 0:5dd225e2621d | 302 | //////////////COLLISIONENEMYS - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 303 | /** |
lion152 | 0:5dd225e2621d | 304 | @details Function that checks collision bellow the character with each enemy |
lion152 | 0:5dd225e2621d | 305 | */ |
lion152 | 0:5dd225e2621d | 306 | deque<Enemy*>::iterator Character::collisionEnemyS(deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 307 | { |
lion152 | 0:5dd225e2621d | 308 | for(deque<Enemy*>::iterator it=enemyMap->begin(); it !=enemyMap->end();) |
lion152 | 0:5dd225e2621d | 309 | { |
lion152 | 0:5dd225e2621d | 310 | Enemy* e=*it; |
lion152 | 0:5dd225e2621d | 311 | if (touchLeftDownS(*e)) |
lion152 | 0:5dd225e2621d | 312 | { |
lion152 | 0:5dd225e2621d | 313 | return it; |
lion152 | 0:5dd225e2621d | 314 | } |
lion152 | 0:5dd225e2621d | 315 | it++; |
lion152 | 0:5dd225e2621d | 316 | } |
lion152 | 0:5dd225e2621d | 317 | return enemyMap->end(); |
lion152 | 0:5dd225e2621d | 318 | } |
lion152 | 0:5dd225e2621d | 319 | |
lion152 | 0:5dd225e2621d | 320 | //////////////COLLISIONENEMYN - CHARACTER////////////////////////////////////////////////// |
lion152 | 0:5dd225e2621d | 321 | /** |
lion152 | 0:5dd225e2621d | 322 | @details Function that checks collision above the character with each enemy |
lion152 | 0:5dd225e2621d | 323 | */ |
lion152 | 0:5dd225e2621d | 324 | bool Character::collisionEnemyN(deque<Enemy*>* enemyMap) |
lion152 | 0:5dd225e2621d | 325 | { |
lion152 | 0:5dd225e2621d | 326 | for(deque<Enemy*>::iterator it=enemyMap->begin(); it !=enemyMap->end();) |
lion152 | 0:5dd225e2621d | 327 | { |
lion152 | 0:5dd225e2621d | 328 | Enemy* e=*it; |
lion152 | 0:5dd225e2621d | 329 | if (touchLeftDownN(*e)) |
lion152 | 0:5dd225e2621d | 330 | { |
lion152 | 0:5dd225e2621d | 331 | return true; |
lion152 | 0:5dd225e2621d | 332 | } |
lion152 | 0:5dd225e2621d | 333 | it++; |
lion152 | 0:5dd225e2621d | 334 | } |
lion152 | 0:5dd225e2621d | 335 | return false; |
lion152 | 0:5dd225e2621d | 336 | } |