Great Gamebuino game by AJSB. Ported to Pokitto by Jonne using automatic parser
Dependencies: PokittoLib
Fork of Armageddon by
maruino.cpp@15:d89b75a69052, 2018-05-02 (annotated)
- Committer:
- Pokitto
- Date:
- Wed May 02 06:33:25 2018 +0000
- Revision:
- 15:d89b75a69052
- Parent:
- 9:949027352af6
New pokittolib with improved volume controls & better button handling
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pokitto | 9:949027352af6 | 1 | /* This file was automatically parsed from an Arduino sourcefile */ |
Pokitto | 9:949027352af6 | 2 | /* by PokittoParser v0.1 Copyright 2016 Jonne Valola */ |
Pokitto | 9:949027352af6 | 3 | /* USE AT YOUR OWN RISK - NO GUARANTEES GIVEN OF 100% CORRECTNESS */ |
Pokitto | 9:949027352af6 | 4 | |
Pokitto | 9:949027352af6 | 5 | #include <stdint.h> |
Pokitto | 9:949027352af6 | 6 | #include "PokittoCore.h" |
Pokitto | 9:949027352af6 | 7 | |
Pokitto | 9:949027352af6 | 8 | const char lev[] PROGMEM = { |
Pokitto | 9:949027352af6 | 9 | " "///////////////////////////////// |
Pokitto | 9:949027352af6 | 10 | " BBBB F" |
Pokitto | 9:949027352af6 | 11 | " BM?B CC B BB G" |
Pokitto | 9:949027352af6 | 12 | " C C B ?BB M?? GG" |
Pokitto | 9:949027352af6 | 13 | " gGGG GGG g g B BB GGG" |
Pokitto | 9:949027352af6 | 14 | "GGGGGGGGGGGGGG GGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGG" |
Pokitto | 9:949027352af6 | 15 | |
Pokitto | 9:949027352af6 | 16 | " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"///////////////////////////////// |
Pokitto | 9:949027352af6 | 17 | " CCC g GCCCCCCCCCCCCCCCCCCCCCCC " |
Pokitto | 9:949027352af6 | 18 | " B??B GBBGGGGGGGGGGGGGGGGGGGGG CCC " |
Pokitto | 9:949027352af6 | 19 | " ?M? BBBBBBB?B B " |
Pokitto | 9:949027352af6 | 20 | " g B BB g g F" |
Pokitto | 9:949027352af6 | 21 | "GGGGGGGG GGGGGGGGGGGGGGGGGG GGG GG GG GGGGGGGGGGGGGGGGGG" |
Pokitto | 9:949027352af6 | 22 | |
Pokitto | 9:949027352af6 | 23 | " GGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGG GGGG"///////////////////////////////// |
Pokitto | 9:949027352af6 | 24 | " GGGGGGGG G CCCCCC GG GGGGGGGGGGGGGGGGGGGGGGGG GGGG" |
Pokitto | 9:949027352af6 | 25 | "GGG G GGGGGGGGGGG GGG GGGG" |
Pokitto | 9:949027352af6 | 26 | "GGG GGGGGGGGGGGGGGGGGGGGGGGG GGGGGG GGGGGGGGGGG GGG " |
Pokitto | 9:949027352af6 | 27 | "GGG g GGGGGGGGGGGFGGG " |
Pokitto | 9:949027352af6 | 28 | "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" |
Pokitto | 9:949027352af6 | 29 | |
Pokitto | 9:949027352af6 | 30 | " BB "///////////////////////////////// |
Pokitto | 9:949027352af6 | 31 | " BBCCC " |
Pokitto | 9:949027352af6 | 32 | " CC CC CC CC CC CC BBCCCCCC CC CC CC CC CC CC CC CC CC " |
Pokitto | 9:949027352af6 | 33 | " CCCCCC GG F" |
Pokitto | 9:949027352af6 | 34 | "GGGG g g g g g g g g g g Gg g G g g g g gGGGGGG" |
Pokitto | 9:949027352af6 | 35 | "GGGGSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSGGGGGG" |
Pokitto | 9:949027352af6 | 36 | |
Pokitto | 9:949027352af6 | 37 | " S GGG "///////////////////////////////// |
Pokitto | 9:949027352af6 | 38 | " B M S S GFG " |
Pokitto | 9:949027352af6 | 39 | "BBBBBBB BBB BBB GBG " |
Pokitto | 9:949027352af6 | 40 | "CCCCCCC BB S " |
Pokitto | 9:949027352af6 | 41 | " GGG BBB BBB G g g g g gG " |
Pokitto | 9:949027352af6 | 42 | "GGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGG " |
Pokitto | 9:949027352af6 | 43 | |
Pokitto | 9:949027352af6 | 44 | " "///////////////////////////////// |
Pokitto | 9:949027352af6 | 45 | " IIII F" |
Pokitto | 9:949027352af6 | 46 | " IM?I CC I II I" |
Pokitto | 9:949027352af6 | 47 | " C C I ?II M?? II" |
Pokitto | 9:949027352af6 | 48 | " gIII III g g I II III" |
Pokitto | 9:949027352af6 | 49 | "IIIIIIIIIIIIII IIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIII" |
Pokitto | 9:949027352af6 | 50 | |
Pokitto | 9:949027352af6 | 51 | |
Pokitto | 9:949027352af6 | 52 | |
Pokitto | 9:949027352af6 | 53 | "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"///////////////////////////////// |
Pokitto | 9:949027352af6 | 54 | "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" |
Pokitto | 9:949027352af6 | 55 | "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" |
Pokitto | 9:949027352af6 | 56 | "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" |
Pokitto | 9:949027352af6 | 57 | "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" |
Pokitto | 9:949027352af6 | 58 | "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" |
Pokitto | 9:949027352af6 | 59 | }; |
Pokitto | 9:949027352af6 | 60 | |
Pokitto | 9:949027352af6 | 61 | |
Pokitto | 9:949027352af6 | 62 | |
Pokitto | 9:949027352af6 | 63 | |
Pokitto | 9:949027352af6 | 64 | #include "PokittoCore.h" |
Pokitto | 9:949027352af6 | 65 | /* Auto-generated function declarations */ |
Pokitto | 9:949027352af6 | 66 | void loadLevel(int); |
Pokitto | 9:949027352af6 | 67 | void nextLevel(); |
Pokitto | 9:949027352af6 | 68 | void drawLevel(); |
Pokitto | 9:949027352af6 | 69 | void removeEnt(int); |
Pokitto | 9:949027352af6 | 70 | void clearEnts(); |
Pokitto | 9:949027352af6 | 71 | void addEnt(int, int,const byte *); |
Pokitto | 9:949027352af6 | 72 | void updateEnt(); |
Pokitto | 9:949027352af6 | 73 | boolean Collide(float, float, const byte*); |
Pokitto | 9:949027352af6 | 74 | void setup(); |
Pokitto | 9:949027352af6 | 75 | void loop(); |
Pokitto | 9:949027352af6 | 76 | void Menu(); |
Pokitto | 9:949027352af6 | 77 | void start(); |
Pokitto | 9:949027352af6 | 78 | void startGame(); |
Pokitto | 9:949027352af6 | 79 | void inputCode(); |
Pokitto | 9:949027352af6 | 80 | void controls(); |
Pokitto | 9:949027352af6 | 81 | void lose(); |
Pokitto | 9:949027352af6 | 82 | void win(); |
Pokitto | 9:949027352af6 | 83 | void startTimer(); |
Pokitto | 9:949027352af6 | 84 | void updateDisplay(); |
Pokitto | 9:949027352af6 | 85 | void startPlayer(); |
Pokitto | 9:949027352af6 | 86 | void updatePlayer(); |
Pokitto | 9:949027352af6 | 87 | void drawPlayer(); |
Pokitto | 9:949027352af6 | 88 | void getBig(); |
Pokitto | 9:949027352af6 | 89 | void getSmall(); |
Pokitto | 9:949027352af6 | 90 | void die(); |
Pokitto | 9:949027352af6 | 91 | boolean playerCollide(); |
Pokitto | 9:949027352af6 | 92 | void checkCode(char*); |
Pokitto | 9:949027352af6 | 93 | Pokitto::Core gb; |
Pokitto | 9:949027352af6 | 94 | |
Pokitto | 9:949027352af6 | 95 | |
Pokitto | 9:949027352af6 | 96 | #define MENULENGTH 4 |
Pokitto | 9:949027352af6 | 97 | const char strPlay[] PROGMEM = "Play Game"; |
Pokitto | 9:949027352af6 | 98 | const char strMainMenu[] PROGMEM = "Main Menu"; |
Pokitto | 9:949027352af6 | 99 | const char strCode[] PROGMEM = "Input a code"; |
Pokitto | 9:949027352af6 | 100 | const char strControls[] PROGMEM = "Controls"; |
Pokitto | 9:949027352af6 | 101 | const char* const menu[MENULENGTH] PROGMEM = { |
Pokitto | 9:949027352af6 | 102 | strPlay, strMainMenu, strControls, strCode, |
Pokitto | 9:949027352af6 | 103 | }; |
Pokitto | 9:949027352af6 | 104 | |
Pokitto | 9:949027352af6 | 105 | |
Pokitto | 9:949027352af6 | 106 | typedef struct { |
Pokitto | 9:949027352af6 | 107 | int invincible; |
Pokitto | 9:949027352af6 | 108 | float x; |
Pokitto | 9:949027352af6 | 109 | float vx; |
Pokitto | 9:949027352af6 | 110 | float y; |
Pokitto | 9:949027352af6 | 111 | float vy; |
Pokitto | 9:949027352af6 | 112 | byte h; |
Pokitto | 9:949027352af6 | 113 | boolean flip; |
Pokitto | 9:949027352af6 | 114 | boolean big; |
Pokitto | 9:949027352af6 | 115 | boolean crouch; |
Pokitto | 9:949027352af6 | 116 | } Char; |
Pokitto | 9:949027352af6 | 117 | |
Pokitto | 9:949027352af6 | 118 | typedef struct{ |
Pokitto | 9:949027352af6 | 119 | float x; |
Pokitto | 9:949027352af6 | 120 | float y; |
Pokitto | 9:949027352af6 | 121 | float vx; |
Pokitto | 9:949027352af6 | 122 | float vy; |
Pokitto | 9:949027352af6 | 123 | boolean flip; |
Pokitto | 9:949027352af6 | 124 | const byte *bitmap; |
Pokitto | 9:949027352af6 | 125 | } Entity; |
Pokitto | 9:949027352af6 | 126 | |
Pokitto | 9:949027352af6 | 127 | |
Pokitto | 9:949027352af6 | 128 | |
Pokitto | 9:949027352af6 | 129 | extern const byte font3x5[]; |
Pokitto | 9:949027352af6 | 130 | extern const byte font5x7[]; |
Pokitto | 9:949027352af6 | 131 | extern const byte Title[] PROGMEM; |
Pokitto | 9:949027352af6 | 132 | extern const char lev[] PROGMEM; |
Pokitto | 9:949027352af6 | 133 | extern const byte Ground[] PROGMEM; |
Pokitto | 9:949027352af6 | 134 | extern const byte Spikes[] PROGMEM; |
Pokitto | 9:949027352af6 | 135 | extern const byte Brick[] PROGMEM; |
Pokitto | 9:949027352af6 | 136 | extern const byte MysteryBlockC[] PROGMEM; |
Pokitto | 9:949027352af6 | 137 | extern const byte MysteryBlockM[] PROGMEM; |
Pokitto | 9:949027352af6 | 138 | extern const byte Coin[] PROGMEM; |
Pokitto | 9:949027352af6 | 139 | extern const byte Empty[] PROGMEM; |
Pokitto | 9:949027352af6 | 140 | extern const byte PlayerS[] PROGMEM; |
Pokitto | 9:949027352af6 | 141 | extern const byte PlayerS1[] PROGMEM; |
Pokitto | 9:949027352af6 | 142 | extern const byte PlayerT[] PROGMEM; |
Pokitto | 9:949027352af6 | 143 | extern const byte PlayerT1[] PROGMEM; |
Pokitto | 9:949027352af6 | 144 | extern const byte PlayerT2[] PROGMEM; |
Pokitto | 9:949027352af6 | 145 | extern const byte PlayerT3[] PROGMEM; |
Pokitto | 9:949027352af6 | 146 | extern const byte PlayerT4[] PROGMEM; |
Pokitto | 9:949027352af6 | 147 | extern const byte PlayerT5[] PROGMEM; |
Pokitto | 9:949027352af6 | 148 | extern const byte PlayerT6[] PROGMEM; |
Pokitto | 9:949027352af6 | 149 | extern const byte PlayerC[] PROGMEM; |
Pokitto | 9:949027352af6 | 150 | extern const byte Mushroom[] PROGMEM; |
Pokitto | 9:949027352af6 | 151 | extern const byte Goomba[] PROGMEM; |
Pokitto | 9:949027352af6 | 152 | extern const byte Flag[] PROGMEM; |
Pokitto | 9:949027352af6 | 153 | Char player; |
Pokitto | 9:949027352af6 | 154 | |
Pokitto | 9:949027352af6 | 155 | |
Pokitto | 9:949027352af6 | 156 | int cameraPos; |
Pokitto | 9:949027352af6 | 157 | int frames; |
Pokitto | 9:949027352af6 | 158 | int score; |
Pokitto | 9:949027352af6 | 159 | int curLev; |
Pokitto | 9:949027352af6 | 160 | int numLevs = 6; |
Pokitto | 9:949027352af6 | 161 | int lives = 5; |
Pokitto | 9:949027352af6 | 162 | byte time_b; |
Pokitto | 9:949027352af6 | 163 | boolean running; |
Pokitto | 9:949027352af6 | 164 | boolean disp = true; |
Pokitto | 9:949027352af6 | 165 | char code[12] = ""; |
Pokitto | 9:949027352af6 | 166 | |
Pokitto | 9:949027352af6 | 167 | const byte *_block; |
Pokitto | 9:949027352af6 | 168 | char curLevel[384] = ""; |
Pokitto | 9:949027352af6 | 169 | |
Pokitto | 9:949027352af6 | 170 | |
Pokitto | 9:949027352af6 | 171 | int main() { |
Pokitto | 9:949027352af6 | 172 | setup(); |
Pokitto | 9:949027352af6 | 173 | while (gb.isRunning()) { |
Pokitto | 9:949027352af6 | 174 | loop(); |
Pokitto | 9:949027352af6 | 175 | } |
Pokitto | 9:949027352af6 | 176 | } |
Pokitto | 9:949027352af6 | 177 | |
Pokitto | 9:949027352af6 | 178 | void loadLevel(int curLev){ |
Pokitto | 9:949027352af6 | 179 | for(int i = 0; i<384; i++){//Loops through the level |
Pokitto | 9:949027352af6 | 180 | curLevel[i] = (char)pgm_read_byte(lev + 384 * (curLev - 1) + i); |
Pokitto | 9:949027352af6 | 181 | } |
Pokitto | 9:949027352af6 | 182 | |
Pokitto | 9:949027352af6 | 183 | |
Pokitto | 9:949027352af6 | 184 | } |
Pokitto | 9:949027352af6 | 185 | |
Pokitto | 9:949027352af6 | 186 | void nextLevel(){ |
Pokitto | 9:949027352af6 | 187 | if(curLev == numLevs){ |
Pokitto | 9:949027352af6 | 188 | win(); |
Pokitto | 9:949027352af6 | 189 | } |
Pokitto | 9:949027352af6 | 190 | else{ |
Pokitto | 9:949027352af6 | 191 | gb.popup(("Next Level!"), 20); |
Pokitto | 9:949027352af6 | 192 | if(curLev == 6){ |
Pokitto | 9:949027352af6 | 193 | gb.popup(("Remember lvl 1?"), 20); |
Pokitto | 9:949027352af6 | 194 | } |
Pokitto | 9:949027352af6 | 195 | curLev ++; |
Pokitto | 9:949027352af6 | 196 | loadLevel(curLev); |
Pokitto | 9:949027352af6 | 197 | player.y = player.x = 0; |
Pokitto | 9:949027352af6 | 198 | time_b = 130; |
Pokitto | 9:949027352af6 | 199 | cameraPos = 0; |
Pokitto | 9:949027352af6 | 200 | } |
Pokitto | 9:949027352af6 | 201 | } |
Pokitto | 9:949027352af6 | 202 | |
Pokitto | 9:949027352af6 | 203 | void drawLevel(){ |
Pokitto | 9:949027352af6 | 204 | for(int i = 0; i<6; i++){ |
Pokitto | 9:949027352af6 | 205 | for(int j = 0; j<64; j++){ |
Pokitto | 9:949027352af6 | 206 | if((j*8 - cameraPos >= -8 && j*8 - cameraPos <= LCDWIDTH +8)){ |
Pokitto | 9:949027352af6 | 207 | _block = NULL; |
Pokitto | 9:949027352af6 | 208 | switch(curLevel[(i)*64+j]){ |
Pokitto | 9:949027352af6 | 209 | case 'G' : |
Pokitto | 9:949027352af6 | 210 | _block = Ground; |
Pokitto | 9:949027352af6 | 211 | break; |
Pokitto | 9:949027352af6 | 212 | case 'B' : |
Pokitto | 9:949027352af6 | 213 | _block = Brick; |
Pokitto | 9:949027352af6 | 214 | break; |
Pokitto | 9:949027352af6 | 215 | case '?' : |
Pokitto | 9:949027352af6 | 216 | _block = MysteryBlockC; |
Pokitto | 9:949027352af6 | 217 | break; |
Pokitto | 9:949027352af6 | 218 | case 'M' : |
Pokitto | 9:949027352af6 | 219 | _block = MysteryBlockM; |
Pokitto | 9:949027352af6 | 220 | break; |
Pokitto | 9:949027352af6 | 221 | case 'C' : |
Pokitto | 9:949027352af6 | 222 | _block = Coin; |
Pokitto | 9:949027352af6 | 223 | break; |
Pokitto | 9:949027352af6 | 224 | case 'S' : |
Pokitto | 9:949027352af6 | 225 | _block = Spikes; |
Pokitto | 9:949027352af6 | 226 | break; |
Pokitto | 9:949027352af6 | 227 | case 'E' : |
Pokitto | 9:949027352af6 | 228 | _block = Empty; |
Pokitto | 9:949027352af6 | 229 | break; |
Pokitto | 9:949027352af6 | 230 | case 'F' : |
Pokitto | 9:949027352af6 | 231 | _block = Flag; |
Pokitto | 9:949027352af6 | 232 | break; |
Pokitto | 9:949027352af6 | 233 | case 'g' : |
Pokitto | 9:949027352af6 | 234 | curLevel[(i)*64+j] = 'Q'; |
Pokitto | 9:949027352af6 | 235 | addEnt(j*8, LCDHEIGHT - (8 * (6-i)), Goomba); |
Pokitto | 9:949027352af6 | 236 | break; |
Pokitto | 9:949027352af6 | 237 | default: |
Pokitto | 9:949027352af6 | 238 | break; |
Pokitto | 9:949027352af6 | 239 | } |
Pokitto | 9:949027352af6 | 240 | |
Pokitto | 9:949027352af6 | 241 | if(_block != NULL) { |
Pokitto | 9:949027352af6 | 242 | if((_block == Coin || _block == Spikes) && gb.frameCount%20 >= 10){ |
Pokitto | 9:949027352af6 | 243 | gb.display.drawBitmap(j*8 - cameraPos, LCDHEIGHT - (8 * (6-i)), _block, NOROT, FLIPH); |
Pokitto | 9:949027352af6 | 244 | } |
Pokitto | 9:949027352af6 | 245 | else{ |
Pokitto | 9:949027352af6 | 246 | gb.display.drawBitmap(j*8 - cameraPos, LCDHEIGHT - (8 * (6-i)), _block); |
Pokitto | 9:949027352af6 | 247 | } |
Pokitto | 9:949027352af6 | 248 | } |
Pokitto | 9:949027352af6 | 249 | } |
Pokitto | 9:949027352af6 | 250 | else if(curLevel[(i)*64+j] == 'Q'){ |
Pokitto | 9:949027352af6 | 251 | curLevel[(i)*64+j] = 'g'; |
Pokitto | 9:949027352af6 | 252 | } |
Pokitto | 9:949027352af6 | 253 | |
Pokitto | 9:949027352af6 | 254 | } |
Pokitto | 9:949027352af6 | 255 | } |
Pokitto | 9:949027352af6 | 256 | } |
Pokitto | 9:949027352af6 | 257 | |
Pokitto | 9:949027352af6 | 258 | #define numEnt 10 |
Pokitto | 9:949027352af6 | 259 | Entity entities[10]; |
Pokitto | 9:949027352af6 | 260 | boolean collide; |
Pokitto | 9:949027352af6 | 261 | |
Pokitto | 9:949027352af6 | 262 | |
Pokitto | 9:949027352af6 | 263 | |
Pokitto | 9:949027352af6 | 264 | void removeEnt(int i){ |
Pokitto | 9:949027352af6 | 265 | entities[i].bitmap = PlayerC; |
Pokitto | 9:949027352af6 | 266 | entities[i].x = 0; |
Pokitto | 9:949027352af6 | 267 | entities[i].vx = 0; |
Pokitto | 9:949027352af6 | 268 | entities[i].y = 0; |
Pokitto | 9:949027352af6 | 269 | entities[i].vy = 0; |
Pokitto | 9:949027352af6 | 270 | } |
Pokitto | 9:949027352af6 | 271 | |
Pokitto | 9:949027352af6 | 272 | void clearEnts(){ |
Pokitto | 9:949027352af6 | 273 | for(int i = 0; i<numEnt; i++){ |
Pokitto | 9:949027352af6 | 274 | entities[i].x = entities[i].y = entities[i].vx = entities[i].vy = 0; |
Pokitto | 9:949027352af6 | 275 | entities[i].bitmap = PlayerC; |
Pokitto | 9:949027352af6 | 276 | } |
Pokitto | 9:949027352af6 | 277 | } |
Pokitto | 9:949027352af6 | 278 | |
Pokitto | 9:949027352af6 | 279 | void addEnt(int x, int y,const byte *b){ |
Pokitto | 9:949027352af6 | 280 | for(int i = 0; i<numEnt; i++){ |
Pokitto | 9:949027352af6 | 281 | if(entities[i].bitmap == PlayerC){ |
Pokitto | 9:949027352af6 | 282 | entities[i].bitmap = b; |
Pokitto | 9:949027352af6 | 283 | entities[i].x = x; |
Pokitto | 9:949027352af6 | 284 | entities[i].y = y; |
Pokitto | 9:949027352af6 | 285 | entities[i].vy = 0; |
Pokitto | 9:949027352af6 | 286 | if(b == Mushroom){ |
Pokitto | 9:949027352af6 | 287 | entities[i].vx = 1; |
Pokitto | 9:949027352af6 | 288 | } |
Pokitto | 9:949027352af6 | 289 | else{ |
Pokitto | 9:949027352af6 | 290 | entities[i].vx = -1; |
Pokitto | 9:949027352af6 | 291 | } |
Pokitto | 9:949027352af6 | 292 | |
Pokitto | 9:949027352af6 | 293 | break; |
Pokitto | 9:949027352af6 | 294 | } |
Pokitto | 9:949027352af6 | 295 | } |
Pokitto | 9:949027352af6 | 296 | } |
Pokitto | 9:949027352af6 | 297 | |
Pokitto | 9:949027352af6 | 298 | void updateEnt(){ |
Pokitto | 9:949027352af6 | 299 | for(int i = 0; i< numEnt; i++){ |
Pokitto | 9:949027352af6 | 300 | if(entities[i].bitmap != PlayerC){ |
Pokitto | 9:949027352af6 | 301 | |
Pokitto | 9:949027352af6 | 302 | entities[i].x += entities[i].vx; |
Pokitto | 9:949027352af6 | 303 | if(Collide(entities[i].x, entities[i].y, entities[i].bitmap)){ |
Pokitto | 9:949027352af6 | 304 | entities[i].x -= entities[i].vx; |
Pokitto | 9:949027352af6 | 305 | entities[i].vx *= -1; |
Pokitto | 9:949027352af6 | 306 | } |
Pokitto | 9:949027352af6 | 307 | |
Pokitto | 9:949027352af6 | 308 | entities[i].vy += .4; |
Pokitto | 9:949027352af6 | 309 | if(entities[i].vy >2){ |
Pokitto | 9:949027352af6 | 310 | entities[i].vy = 2; |
Pokitto | 9:949027352af6 | 311 | } |
Pokitto | 9:949027352af6 | 312 | |
Pokitto | 9:949027352af6 | 313 | entities[i].y += entities[i].vy; |
Pokitto | 9:949027352af6 | 314 | if(Collide(entities[i].x, entities[i].y, entities[i].bitmap)){ |
Pokitto | 9:949027352af6 | 315 | entities[i].y -= entities[i].vy; |
Pokitto | 9:949027352af6 | 316 | entities[i].vy /= 2; |
Pokitto | 9:949027352af6 | 317 | } |
Pokitto | 9:949027352af6 | 318 | |
Pokitto | 9:949027352af6 | 319 | if(entities[i].y > LCDHEIGHT || entities[i].x - cameraPos <= -8 || entities[i].x - cameraPos > LCDWIDTH + 8){ |
Pokitto | 9:949027352af6 | 320 | removeEnt(i); |
Pokitto | 9:949027352af6 | 321 | } |
Pokitto | 9:949027352af6 | 322 | |
Pokitto | 9:949027352af6 | 323 | if(entities[i].bitmap == Goomba && gb.frameCount%10 >= 5){ |
Pokitto | 9:949027352af6 | 324 | gb.display.drawBitmap(entities[i].x - cameraPos, entities[i].y, entities[i].bitmap, NOROT, FLIPH); |
Pokitto | 9:949027352af6 | 325 | } |
Pokitto | 9:949027352af6 | 326 | |
Pokitto | 9:949027352af6 | 327 | else{ |
Pokitto | 9:949027352af6 | 328 | gb.display.drawBitmap(entities[i].x - cameraPos, entities[i].y, entities[i].bitmap, NOROT, NOFLIP); |
Pokitto | 9:949027352af6 | 329 | } |
Pokitto | 9:949027352af6 | 330 | |
Pokitto | 9:949027352af6 | 331 | } |
Pokitto | 9:949027352af6 | 332 | } |
Pokitto | 9:949027352af6 | 333 | } |
Pokitto | 9:949027352af6 | 334 | |
Pokitto | 9:949027352af6 | 335 | boolean Collide(float x, float y, const byte* bMap){ |
Pokitto | 9:949027352af6 | 336 | collide = false; |
Pokitto | 9:949027352af6 | 337 | for(int i = 0; i<6; i++){ |
Pokitto | 9:949027352af6 | 338 | for(int j = 0; j<64; j++){ |
Pokitto | 9:949027352af6 | 339 | _block = NULL; |
Pokitto | 9:949027352af6 | 340 | switch(curLevel[(i)*64+j]){ |
Pokitto | 9:949027352af6 | 341 | case 'G' : |
Pokitto | 9:949027352af6 | 342 | _block = Ground; |
Pokitto | 9:949027352af6 | 343 | break; |
Pokitto | 9:949027352af6 | 344 | case 'B' : |
Pokitto | 9:949027352af6 | 345 | _block = Brick; |
Pokitto | 9:949027352af6 | 346 | break; |
Pokitto | 9:949027352af6 | 347 | case '?' : |
Pokitto | 9:949027352af6 | 348 | _block = MysteryBlockC; |
Pokitto | 9:949027352af6 | 349 | break; |
Pokitto | 9:949027352af6 | 350 | case 'M' : |
Pokitto | 9:949027352af6 | 351 | _block = MysteryBlockM; |
Pokitto | 9:949027352af6 | 352 | break; |
Pokitto | 9:949027352af6 | 353 | case 'S' : |
Pokitto | 9:949027352af6 | 354 | case 'I' : |
Pokitto | 9:949027352af6 | 355 | case 'E' : |
Pokitto | 9:949027352af6 | 356 | _block = Empty; |
Pokitto | 9:949027352af6 | 357 | break; |
Pokitto | 9:949027352af6 | 358 | default: |
Pokitto | 9:949027352af6 | 359 | break; |
Pokitto | 9:949027352af6 | 360 | } |
Pokitto | 9:949027352af6 | 361 | |
Pokitto | 9:949027352af6 | 362 | if(!(_block == NULL)){ |
Pokitto | 9:949027352af6 | 363 | if(gb.collideBitmapBitmap(x, y, bMap, j*8, LCDHEIGHT - (8*(6-i)), _block)){ |
Pokitto | 9:949027352af6 | 364 | collide = true; |
Pokitto | 9:949027352af6 | 365 | } |
Pokitto | 9:949027352af6 | 366 | } |
Pokitto | 9:949027352af6 | 367 | } |
Pokitto | 9:949027352af6 | 368 | } |
Pokitto | 9:949027352af6 | 369 | return collide; |
Pokitto | 9:949027352af6 | 370 | } |
Pokitto | 9:949027352af6 | 371 | |
Pokitto | 9:949027352af6 | 372 | |
Pokitto | 9:949027352af6 | 373 | void setup(){ |
Pokitto | 9:949027352af6 | 374 | // initialize the Gamebuino object |
Pokitto | 9:949027352af6 | 375 | |
Pokitto | 9:949027352af6 | 376 | gb.begin(); |
Pokitto | 9:949027352af6 | 377 | gb.display.palette[0]=COLOR_WHITE; |
Pokitto | 9:949027352af6 | 378 | gb.display.palette[1]=COLOR_BLACK; |
Pokitto | 9:949027352af6 | 379 | gb.display.setFont(font5x7); |
Pokitto | 9:949027352af6 | 380 | gb.battery.show = false; |
Pokitto | 9:949027352af6 | 381 | start(); |
Pokitto | 9:949027352af6 | 382 | } |
Pokitto | 9:949027352af6 | 383 | |
Pokitto | 9:949027352af6 | 384 | |
Pokitto | 9:949027352af6 | 385 | void loop(){ |
Pokitto | 9:949027352af6 | 386 | if(gb.update()){ |
Pokitto | 9:949027352af6 | 387 | gb.battery.show = false; |
Pokitto | 9:949027352af6 | 388 | if(running){ |
Pokitto | 9:949027352af6 | 389 | updatePlayer(); |
Pokitto | 9:949027352af6 | 390 | updateEnt(); |
Pokitto | 9:949027352af6 | 391 | drawPlayer(); |
Pokitto | 9:949027352af6 | 392 | drawLevel(); |
Pokitto | 9:949027352af6 | 393 | updateDisplay(); |
Pokitto | 9:949027352af6 | 394 | } |
Pokitto | 9:949027352af6 | 395 | |
Pokitto | 9:949027352af6 | 396 | } |
Pokitto | 9:949027352af6 | 397 | } |
Pokitto | 9:949027352af6 | 398 | |
Pokitto | 9:949027352af6 | 399 | void Menu(){ |
Pokitto | 9:949027352af6 | 400 | running = false; |
Pokitto | 9:949027352af6 | 401 | gb.display.setFont(font5x7); |
Pokitto | 9:949027352af6 | 402 | switch(gb.menu(menu, MENULENGTH)){ |
Pokitto | 9:949027352af6 | 403 | case -1: //Nothing |
Pokitto | 9:949027352af6 | 404 | start(); |
Pokitto | 9:949027352af6 | 405 | break; |
Pokitto | 9:949027352af6 | 406 | case 0: //Play game |
Pokitto | 9:949027352af6 | 407 | startGame(); |
Pokitto | 9:949027352af6 | 408 | break; |
Pokitto | 9:949027352af6 | 409 | case 1: //Main menu |
Pokitto | 9:949027352af6 | 410 | start(); |
Pokitto | 9:949027352af6 | 411 | break; |
Pokitto | 9:949027352af6 | 412 | case 2: //Display controls |
Pokitto | 9:949027352af6 | 413 | controls(); |
Pokitto | 9:949027352af6 | 414 | break; |
Pokitto | 9:949027352af6 | 415 | case 3: //Code input screen |
Pokitto | 9:949027352af6 | 416 | inputCode(); |
Pokitto | 9:949027352af6 | 417 | break; |
Pokitto | 9:949027352af6 | 418 | default: |
Pokitto | 9:949027352af6 | 419 | break; |
Pokitto | 9:949027352af6 | 420 | } |
Pokitto | 9:949027352af6 | 421 | } |
Pokitto | 9:949027352af6 | 422 | |
Pokitto | 9:949027352af6 | 423 | void start(){ |
Pokitto | 9:949027352af6 | 424 | // show the start menu |
Pokitto | 9:949027352af6 | 425 | gb.titleScreen(("By: ajsb113"), Title); |
Pokitto | 9:949027352af6 | 426 | Menu(); |
Pokitto | 9:949027352af6 | 427 | |
Pokitto | 9:949027352af6 | 428 | } |
Pokitto | 9:949027352af6 | 429 | void startGame(){ |
Pokitto | 9:949027352af6 | 430 | cameraPos = 0; |
Pokitto | 9:949027352af6 | 431 | score = 0; |
Pokitto | 9:949027352af6 | 432 | lives = 5; |
Pokitto | 9:949027352af6 | 433 | running = true; |
Pokitto | 9:949027352af6 | 434 | curLev = 1; |
Pokitto | 9:949027352af6 | 435 | clearEnts(); |
Pokitto | 9:949027352af6 | 436 | startTimer(); |
Pokitto | 9:949027352af6 | 437 | startPlayer(); |
Pokitto | 9:949027352af6 | 438 | loadLevel(curLev); |
Pokitto | 9:949027352af6 | 439 | |
Pokitto | 9:949027352af6 | 440 | } |
Pokitto | 9:949027352af6 | 441 | |
Pokitto | 9:949027352af6 | 442 | void inputCode(){ |
Pokitto | 9:949027352af6 | 443 | while(!gb.buttons.pressed(BTN_A)){ |
Pokitto | 9:949027352af6 | 444 | if(gb.update()){ |
Pokitto | 9:949027352af6 | 445 | gb.display.cursorX = 0; |
Pokitto | 9:949027352af6 | 446 | gb.display.cursorY = 5; |
Pokitto | 9:949027352af6 | 447 | gb.display.textWrap = true; |
Pokitto | 9:949027352af6 | 448 | gb.display.println("Press \25 to enter a code or \27 to return to menu"); |
Pokitto | 9:949027352af6 | 449 | gb.display.textWrap = false; |
Pokitto | 9:949027352af6 | 450 | } |
Pokitto | 9:949027352af6 | 451 | } |
Pokitto | 9:949027352af6 | 452 | gb.keyboard(code, 12); |
Pokitto | 9:949027352af6 | 453 | Menu(); |
Pokitto | 9:949027352af6 | 454 | } |
Pokitto | 9:949027352af6 | 455 | |
Pokitto | 9:949027352af6 | 456 | void controls(){ |
Pokitto | 9:949027352af6 | 457 | while(!gb.buttons.pressed(BTN_A)){ |
Pokitto | 9:949027352af6 | 458 | if(gb.update()){ |
Pokitto | 9:949027352af6 | 459 | gb.display.cursorX = 0; |
Pokitto | 9:949027352af6 | 460 | gb.display.cursorY = 0; |
Pokitto | 9:949027352af6 | 461 | gb.display.setFont(font3x5); |
Pokitto | 9:949027352af6 | 462 | gb.display.textWrap = true; |
Pokitto | 9:949027352af6 | 463 | gb.display.println("Use \33 & \32 to move."); |
Pokitto | 9:949027352af6 | 464 | gb.display.cursorY += 1; |
Pokitto | 9:949027352af6 | 465 | gb.display.println("Press \30 to toggle HUD size."); |
Pokitto | 9:949027352af6 | 466 | gb.display.cursorY += 1; |
Pokitto | 9:949027352af6 | 467 | gb.display.println("Press \25 to jump."); |
Pokitto | 9:949027352af6 | 468 | gb.display.cursorY += 1; |
Pokitto | 9:949027352af6 | 469 | gb.display.println("Hold \26 to crouch"); |
Pokitto | 9:949027352af6 | 470 | gb.display.cursorY += 1; |
Pokitto | 9:949027352af6 | 471 | gb.display.println("Press \27 to return to menu."); |
Pokitto | 9:949027352af6 | 472 | } |
Pokitto | 9:949027352af6 | 473 | } |
Pokitto | 9:949027352af6 | 474 | Menu(); |
Pokitto | 9:949027352af6 | 475 | } |
Pokitto | 9:949027352af6 | 476 | |
Pokitto | 9:949027352af6 | 477 | void lose(){//temporary |
Pokitto | 9:949027352af6 | 478 | running = false; |
Pokitto | 9:949027352af6 | 479 | while(!gb.buttons.pressed(BTN_A)){ |
Pokitto | 9:949027352af6 | 480 | if(gb.update()){ |
Pokitto | 9:949027352af6 | 481 | gb.display.setFont(font5x7); |
Pokitto | 9:949027352af6 | 482 | gb.display.cursorY = 5; |
Pokitto | 9:949027352af6 | 483 | gb.display.cursorX = 15; |
Pokitto | 9:949027352af6 | 484 | |
Pokitto | 9:949027352af6 | 485 | gb.display.println("You lose \1"); |
Pokitto | 9:949027352af6 | 486 | gb.display.print("Score:"); |
Pokitto | 9:949027352af6 | 487 | gb.display.println(score); |
Pokitto | 9:949027352af6 | 488 | gb.display.println("Press \25 to \n continue"); |
Pokitto | 9:949027352af6 | 489 | } |
Pokitto | 9:949027352af6 | 490 | } |
Pokitto | 9:949027352af6 | 491 | Menu(); |
Pokitto | 9:949027352af6 | 492 | } |
Pokitto | 9:949027352af6 | 493 | |
Pokitto | 9:949027352af6 | 494 | void win(){ |
Pokitto | 9:949027352af6 | 495 | running = false; |
Pokitto | 9:949027352af6 | 496 | while(!gb.buttons.pressed(BTN_A)){ |
Pokitto | 9:949027352af6 | 497 | if(gb.update()){ |
Pokitto | 9:949027352af6 | 498 | gb.display.setFont(font5x7); |
Pokitto | 9:949027352af6 | 499 | gb.display.cursorY = 5; |
Pokitto | 9:949027352af6 | 500 | gb.display.cursorX = 20; |
Pokitto | 9:949027352af6 | 501 | |
Pokitto | 9:949027352af6 | 502 | gb.display.println("You win!!\2"); |
Pokitto | 9:949027352af6 | 503 | gb.display.print("Score:"); |
Pokitto | 9:949027352af6 | 504 | gb.display.println(score); |
Pokitto | 9:949027352af6 | 505 | gb.display.println("Press \25 to \n continue"); |
Pokitto | 9:949027352af6 | 506 | } |
Pokitto | 9:949027352af6 | 507 | } |
Pokitto | 9:949027352af6 | 508 | Menu(); |
Pokitto | 9:949027352af6 | 509 | } |
Pokitto | 9:949027352af6 | 510 | |
Pokitto | 9:949027352af6 | 511 | void startTimer(){ |
Pokitto | 9:949027352af6 | 512 | time_b = 130; |
Pokitto | 9:949027352af6 | 513 | frames = gb.frameCount; |
Pokitto | 9:949027352af6 | 514 | } |
Pokitto | 9:949027352af6 | 515 | |
Pokitto | 9:949027352af6 | 516 | void updateDisplay(){ |
Pokitto | 9:949027352af6 | 517 | if((gb.frameCount - frames)>=20){ |
Pokitto | 9:949027352af6 | 518 | frames = gb.frameCount; |
Pokitto | 9:949027352af6 | 519 | time_b --; |
Pokitto | 9:949027352af6 | 520 | } |
Pokitto | 9:949027352af6 | 521 | if(disp){ |
Pokitto | 9:949027352af6 | 522 | gb.display.fillRect(0,0,LCDWIDTH,7); |
Pokitto | 9:949027352af6 | 523 | gb.display.setColor(WHITE,BLACK); |
Pokitto | 9:949027352af6 | 524 | gb.display.setFont(font3x5); |
Pokitto | 9:949027352af6 | 525 | gb.display.cursorY = 1; |
Pokitto | 9:949027352af6 | 526 | gb.display.cursorX = 1; |
Pokitto | 9:949027352af6 | 527 | gb.display.print("\35:"); |
Pokitto | 9:949027352af6 | 528 | gb.display.print((int)time_b); |
Pokitto | 9:949027352af6 | 529 | gb.display.print(" \44:"); |
Pokitto | 9:949027352af6 | 530 | gb.display.print((int)score); |
Pokitto | 9:949027352af6 | 531 | gb.display.print(" \03:"); |
Pokitto | 9:949027352af6 | 532 | gb.display.print((int)lives); |
Pokitto | 9:949027352af6 | 533 | gb.display.setColor(BLACK,WHITE); |
Pokitto | 9:949027352af6 | 534 | } |
Pokitto | 9:949027352af6 | 535 | else{ |
Pokitto | 9:949027352af6 | 536 | gb.display.fillRect(0,0,LCDWIDTH,5); |
Pokitto | 9:949027352af6 | 537 | gb.display.setColor(WHITE,BLACK); |
Pokitto | 9:949027352af6 | 538 | gb.display.setFont(font3x3); |
Pokitto | 9:949027352af6 | 539 | gb.display.cursorY = 1; |
Pokitto | 9:949027352af6 | 540 | gb.display.cursorX = 1; |
Pokitto | 9:949027352af6 | 541 | gb.display.print("\35:"); |
Pokitto | 9:949027352af6 | 542 | gb.display.print((int)time_b); |
Pokitto | 9:949027352af6 | 543 | gb.display.print(" \44:"); |
Pokitto | 9:949027352af6 | 544 | gb.display.print((int)score); |
Pokitto | 9:949027352af6 | 545 | gb.display.print(" \03:"); |
Pokitto | 9:949027352af6 | 546 | gb.display.print((int)lives); |
Pokitto | 9:949027352af6 | 547 | gb.display.setColor(BLACK,WHITE); |
Pokitto | 9:949027352af6 | 548 | } |
Pokitto | 9:949027352af6 | 549 | gb.display.setFont(font3x5); |
Pokitto | 9:949027352af6 | 550 | } |
Pokitto | 9:949027352af6 | 551 | |
Pokitto | 9:949027352af6 | 552 | boolean canJump = false; |
Pokitto | 9:949027352af6 | 553 | boolean walking = false; |
Pokitto | 9:949027352af6 | 554 | boolean bounce = false; |
Pokitto | 9:949027352af6 | 555 | const byte *character; |
Pokitto | 9:949027352af6 | 556 | |
Pokitto | 9:949027352af6 | 557 | void startPlayer(){ |
Pokitto | 9:949027352af6 | 558 | player.x = 0; |
Pokitto | 9:949027352af6 | 559 | player.y = 0; |
Pokitto | 9:949027352af6 | 560 | player.vx = 0; |
Pokitto | 9:949027352af6 | 561 | player.vy = 0; |
Pokitto | 9:949027352af6 | 562 | player.h = 4; |
Pokitto | 9:949027352af6 | 563 | player.invincible = 40; |
Pokitto | 9:949027352af6 | 564 | player.flip = false; |
Pokitto | 9:949027352af6 | 565 | player.big = false; |
Pokitto | 9:949027352af6 | 566 | player.crouch = false; |
Pokitto | 9:949027352af6 | 567 | } |
Pokitto | 9:949027352af6 | 568 | |
Pokitto | 9:949027352af6 | 569 | |
Pokitto | 9:949027352af6 | 570 | void updatePlayer(){ |
Pokitto | 9:949027352af6 | 571 | walking = false; |
Pokitto | 9:949027352af6 | 572 | if(time_b == 0){//time_b out |
Pokitto | 9:949027352af6 | 573 | die(); |
Pokitto | 9:949027352af6 | 574 | } |
Pokitto | 9:949027352af6 | 575 | if(player.invincible > 0){//Invincibility frames |
Pokitto | 9:949027352af6 | 576 | player.invincible--; |
Pokitto | 9:949027352af6 | 577 | } |
Pokitto | 9:949027352af6 | 578 | |
Pokitto | 9:949027352af6 | 579 | if(gb.buttons.pressed(BTN_C)){//Main menu |
Pokitto | 9:949027352af6 | 580 | Menu(); |
Pokitto | 9:949027352af6 | 581 | } |
Pokitto | 9:949027352af6 | 582 | if(gb.buttons.pressed(BTN_UP)){//Toggle display |
Pokitto | 9:949027352af6 | 583 | disp = !disp; |
Pokitto | 9:949027352af6 | 584 | } |
Pokitto | 9:949027352af6 | 585 | |
Pokitto | 9:949027352af6 | 586 | if(gb.buttons.timeHeld(BTN_B)){//Smart crouching |
Pokitto | 9:949027352af6 | 587 | if(player.big && !player.crouch){ |
Pokitto | 9:949027352af6 | 588 | player.y += 8; |
Pokitto | 9:949027352af6 | 589 | } |
Pokitto | 9:949027352af6 | 590 | player.crouch = true; |
Pokitto | 9:949027352af6 | 591 | } |
Pokitto | 9:949027352af6 | 592 | |
Pokitto | 9:949027352af6 | 593 | else{ |
Pokitto | 9:949027352af6 | 594 | if(player.big && player.crouch){//Checks if player can stand without colliding. |
Pokitto | 9:949027352af6 | 595 | player.y -= 8; |
Pokitto | 9:949027352af6 | 596 | if(playerCollide()){ |
Pokitto | 9:949027352af6 | 597 | player.y += 8; |
Pokitto | 9:949027352af6 | 598 | } |
Pokitto | 9:949027352af6 | 599 | else{ |
Pokitto | 9:949027352af6 | 600 | player.crouch = false; |
Pokitto | 9:949027352af6 | 601 | } |
Pokitto | 9:949027352af6 | 602 | } |
Pokitto | 9:949027352af6 | 603 | } |
Pokitto | 9:949027352af6 | 604 | |
Pokitto | 9:949027352af6 | 605 | |
Pokitto | 9:949027352af6 | 606 | |
Pokitto | 9:949027352af6 | 607 | player.vx *= 0.75;//So player.vx slows |
Pokitto | 9:949027352af6 | 608 | if(gb.buttons.repeat(BTN_RIGHT, 1)){//Move right |
Pokitto | 9:949027352af6 | 609 | player.vx += .4; |
Pokitto | 9:949027352af6 | 610 | player.flip = false; |
Pokitto | 9:949027352af6 | 611 | walking = true; |
Pokitto | 9:949027352af6 | 612 | } |
Pokitto | 9:949027352af6 | 613 | |
Pokitto | 9:949027352af6 | 614 | if(gb.buttons.repeat(BTN_LEFT,1)){//Move left |
Pokitto | 9:949027352af6 | 615 | player.vx -= .4; |
Pokitto | 9:949027352af6 | 616 | player.flip = true; |
Pokitto | 9:949027352af6 | 617 | walking = true; |
Pokitto | 9:949027352af6 | 618 | } |
Pokitto | 9:949027352af6 | 619 | |
Pokitto | 9:949027352af6 | 620 | if(player.big){ |
Pokitto | 9:949027352af6 | 621 | if(player.crouch){ |
Pokitto | 9:949027352af6 | 622 | character = PlayerC; |
Pokitto | 9:949027352af6 | 623 | player.h = 8; |
Pokitto | 9:949027352af6 | 624 | } |
Pokitto | 9:949027352af6 | 625 | else if(walking){//Walking animation |
Pokitto | 9:949027352af6 | 626 | player.h = 16; |
Pokitto | 9:949027352af6 | 627 | if(gb.frameCount % 12 >= 0 && gb.frameCount % 12 < 2){character = PlayerT1;} |
Pokitto | 9:949027352af6 | 628 | else if(gb.frameCount % 12 >= 2 && gb.frameCount % 12 < 4) { character = PlayerT2; } |
Pokitto | 9:949027352af6 | 629 | else if(gb.frameCount % 12 >= 4 && gb.frameCount % 12 < 6) { character = PlayerT3; } |
Pokitto | 9:949027352af6 | 630 | else if(gb.frameCount % 12 >= 6 && gb.frameCount % 12 < 8) { character = PlayerT4; } |
Pokitto | 9:949027352af6 | 631 | else if(gb.frameCount % 12 >= 8 && gb.frameCount % 12 < 10) { character = PlayerT5; } |
Pokitto | 9:949027352af6 | 632 | else if(gb.frameCount % 12 >= 10 && gb.frameCount % 12 < 12) { character = PlayerT6; } |
Pokitto | 9:949027352af6 | 633 | } |
Pokitto | 9:949027352af6 | 634 | else{ |
Pokitto | 9:949027352af6 | 635 | character = PlayerT; |
Pokitto | 9:949027352af6 | 636 | player.h = 16; |
Pokitto | 9:949027352af6 | 637 | } |
Pokitto | 9:949027352af6 | 638 | } |
Pokitto | 9:949027352af6 | 639 | |
Pokitto | 9:949027352af6 | 640 | else{ |
Pokitto | 9:949027352af6 | 641 | if(gb.frameCount % 6 >= 0 && gb.frameCount % 6 < 3 && walking){ |
Pokitto | 9:949027352af6 | 642 | character = PlayerS1; |
Pokitto | 9:949027352af6 | 643 | player.h = 8; |
Pokitto | 9:949027352af6 | 644 | } |
Pokitto | 9:949027352af6 | 645 | else{ |
Pokitto | 9:949027352af6 | 646 | character = PlayerS; |
Pokitto | 9:949027352af6 | 647 | player.h = 8; |
Pokitto | 9:949027352af6 | 648 | } |
Pokitto | 9:949027352af6 | 649 | } |
Pokitto | 9:949027352af6 | 650 | |
Pokitto | 9:949027352af6 | 651 | checkCode(code); |
Pokitto | 9:949027352af6 | 652 | |
Pokitto | 9:949027352af6 | 653 | if(player.vx > 2){ |
Pokitto | 9:949027352af6 | 654 | player.vx = 2; |
Pokitto | 9:949027352af6 | 655 | } |
Pokitto | 9:949027352af6 | 656 | |
Pokitto | 9:949027352af6 | 657 | player.x += player.vx; |
Pokitto | 9:949027352af6 | 658 | if(playerCollide()){//Collision on x-axis |
Pokitto | 9:949027352af6 | 659 | player.x -= player.vx; |
Pokitto | 9:949027352af6 | 660 | player.vx = 0; |
Pokitto | 9:949027352af6 | 661 | } |
Pokitto | 9:949027352af6 | 662 | |
Pokitto | 9:949027352af6 | 663 | if(player.vy > 1){//Falling |
Pokitto | 9:949027352af6 | 664 | canJump = false; |
Pokitto | 9:949027352af6 | 665 | } |
Pokitto | 9:949027352af6 | 666 | if(canJump && (gb.buttons.timeHeld(BTN_A) > 0 && gb.buttons.timeHeld(BTN_A) < 5)){//Jump |
Pokitto | 9:949027352af6 | 667 | player.vy -= 1.3; |
Pokitto | 9:949027352af6 | 668 | if (gb.buttons.timeHeld(BTN_A) < 2){ |
Pokitto | 9:949027352af6 | 669 | gb.sound.playOK(); |
Pokitto | 9:949027352af6 | 670 | } |
Pokitto | 9:949027352af6 | 671 | } |
Pokitto | 9:949027352af6 | 672 | player.vy += 0.4; |
Pokitto | 9:949027352af6 | 673 | if(player.vy >5){ |
Pokitto | 9:949027352af6 | 674 | player.vy = 2; |
Pokitto | 9:949027352af6 | 675 | } |
Pokitto | 9:949027352af6 | 676 | |
Pokitto | 9:949027352af6 | 677 | |
Pokitto | 9:949027352af6 | 678 | |
Pokitto | 9:949027352af6 | 679 | if(gb.buttons.released(BTN_A)){//Prevents player from jumping multiple times midair |
Pokitto | 9:949027352af6 | 680 | canJump = false; |
Pokitto | 9:949027352af6 | 681 | } |
Pokitto | 9:949027352af6 | 682 | |
Pokitto | 9:949027352af6 | 683 | player.y += player.vy; |
Pokitto | 9:949027352af6 | 684 | if(playerCollide()){//collision on y-axis |
Pokitto | 9:949027352af6 | 685 | if(player.vy > 0){ |
Pokitto | 9:949027352af6 | 686 | canJump = true; |
Pokitto | 9:949027352af6 | 687 | for(int i = 0; i < player.vy; i++){ |
Pokitto | 9:949027352af6 | 688 | player.y -= 1; |
Pokitto | 9:949027352af6 | 689 | if(!playerCollide()){ |
Pokitto | 9:949027352af6 | 690 | // We found the last open spot before the _block |
Pokitto | 9:949027352af6 | 691 | player.vy = 0; // Stop moving |
Pokitto | 9:949027352af6 | 692 | break; //Quit the loop |
Pokitto | 9:949027352af6 | 693 | } |
Pokitto | 9:949027352af6 | 694 | } |
Pokitto | 9:949027352af6 | 695 | } |
Pokitto | 9:949027352af6 | 696 | else{ |
Pokitto | 9:949027352af6 | 697 | player.y -= player.vy; |
Pokitto | 9:949027352af6 | 698 | player.vy /= 2; |
Pokitto | 9:949027352af6 | 699 | } |
Pokitto | 9:949027352af6 | 700 | } |
Pokitto | 9:949027352af6 | 701 | |
Pokitto | 9:949027352af6 | 702 | if(player.y > LCDHEIGHT){//fall to death |
Pokitto | 9:949027352af6 | 703 | die(); |
Pokitto | 9:949027352af6 | 704 | } |
Pokitto | 9:949027352af6 | 705 | |
Pokitto | 9:949027352af6 | 706 | if(player.x + 4 - cameraPos > (int)(LCDWIDTH/2) && cameraPos < (64*8)-(LCDWIDTH)){//Player is mid screen but screen isn't leaving the end of the level. |
Pokitto | 9:949027352af6 | 707 | cameraPos = player.x - LCDWIDTH/2 + 4; |
Pokitto | 9:949027352af6 | 708 | } |
Pokitto | 9:949027352af6 | 709 | |
Pokitto | 9:949027352af6 | 710 | if(player.x + 4 - cameraPos < (int)(LCDWIDTH/2) && cameraPos > 0){//Player is mid screen but screen isn't showing "before" the level |
Pokitto | 9:949027352af6 | 711 | cameraPos = player.x - LCDWIDTH/2 + 4; |
Pokitto | 9:949027352af6 | 712 | } |
Pokitto | 9:949027352af6 | 713 | } |
Pokitto | 9:949027352af6 | 714 | |
Pokitto | 9:949027352af6 | 715 | void drawPlayer(){ |
Pokitto | 9:949027352af6 | 716 | if(player.invincible % 2 != 1){ |
Pokitto | 9:949027352af6 | 717 | if(!player.flip){ |
Pokitto | 9:949027352af6 | 718 | gb.display.drawBitmap(player.x - cameraPos, player.y, character, NOROT, NOFLIP); |
Pokitto | 9:949027352af6 | 719 | } |
Pokitto | 9:949027352af6 | 720 | else{ |
Pokitto | 9:949027352af6 | 721 | gb.display.drawBitmap(player.x - cameraPos, player.y, character, NOROT, FLIPH); |
Pokitto | 9:949027352af6 | 722 | } |
Pokitto | 9:949027352af6 | 723 | } |
Pokitto | 9:949027352af6 | 724 | } |
Pokitto | 9:949027352af6 | 725 | |
Pokitto | 9:949027352af6 | 726 | void getBig(){ |
Pokitto | 9:949027352af6 | 727 | if(!player.big){ |
Pokitto | 9:949027352af6 | 728 | player.big = true; |
Pokitto | 9:949027352af6 | 729 | player.crouch = true; |
Pokitto | 9:949027352af6 | 730 | } |
Pokitto | 9:949027352af6 | 731 | } |
Pokitto | 9:949027352af6 | 732 | |
Pokitto | 9:949027352af6 | 733 | void getSmall(){ |
Pokitto | 9:949027352af6 | 734 | if(player.invincible <= 0){ |
Pokitto | 9:949027352af6 | 735 | player.invincible = 40; |
Pokitto | 9:949027352af6 | 736 | if(player.big){ |
Pokitto | 9:949027352af6 | 737 | if(!player.crouch){ |
Pokitto | 9:949027352af6 | 738 | player.y += 8; |
Pokitto | 9:949027352af6 | 739 | } |
Pokitto | 9:949027352af6 | 740 | player.big = false; |
Pokitto | 9:949027352af6 | 741 | } |
Pokitto | 9:949027352af6 | 742 | else{ |
Pokitto | 9:949027352af6 | 743 | die(); |
Pokitto | 9:949027352af6 | 744 | } |
Pokitto | 9:949027352af6 | 745 | } |
Pokitto | 9:949027352af6 | 746 | } |
Pokitto | 9:949027352af6 | 747 | |
Pokitto | 9:949027352af6 | 748 | void die(){ |
Pokitto | 9:949027352af6 | 749 | if(lives == 0){ |
Pokitto | 9:949027352af6 | 750 | lose(); |
Pokitto | 9:949027352af6 | 751 | } |
Pokitto | 9:949027352af6 | 752 | else{ |
Pokitto | 9:949027352af6 | 753 | lives --; |
Pokitto | 9:949027352af6 | 754 | time_b = 130; |
Pokitto | 9:949027352af6 | 755 | gb.popup(("You died. \1"), 20); |
Pokitto | 9:949027352af6 | 756 | clearEnts(); |
Pokitto | 9:949027352af6 | 757 | startPlayer(); |
Pokitto | 9:949027352af6 | 758 | cameraPos = 0; |
Pokitto | 9:949027352af6 | 759 | loadLevel(curLev); |
Pokitto | 9:949027352af6 | 760 | } |
Pokitto | 9:949027352af6 | 761 | } |
Pokitto | 9:949027352af6 | 762 | |
Pokitto | 9:949027352af6 | 763 | boolean playerCollide(){ |
Pokitto | 9:949027352af6 | 764 | collide = false; |
Pokitto | 9:949027352af6 | 765 | for(int k = 0; k<numEnt; k++){ |
Pokitto | 9:949027352af6 | 766 | if(gb.collideBitmapBitmap(entities[k].x, entities[k].y, entities[k].bitmap, player.x, player.y, character)){ |
Pokitto | 9:949027352af6 | 767 | if(entities[k].bitmap == Mushroom){ |
Pokitto | 9:949027352af6 | 768 | getBig(); |
Pokitto | 9:949027352af6 | 769 | score += 100; |
Pokitto | 9:949027352af6 | 770 | removeEnt(k); |
Pokitto | 9:949027352af6 | 771 | } |
Pokitto | 9:949027352af6 | 772 | |
Pokitto | 9:949027352af6 | 773 | if(entities[k].bitmap == Goomba){ |
Pokitto | 9:949027352af6 | 774 | if(player.vy > 0 && player.y + player.h - 4 < entities[k].y){//Ugly code checking for players feet being above goomba |
Pokitto | 9:949027352af6 | 775 | removeEnt(k); |
Pokitto | 9:949027352af6 | 776 | bounce = true; |
Pokitto | 9:949027352af6 | 777 | } |
Pokitto | 9:949027352af6 | 778 | else{ |
Pokitto | 9:949027352af6 | 779 | getSmall(); |
Pokitto | 9:949027352af6 | 780 | if(player.invincible <= 0){ |
Pokitto | 9:949027352af6 | 781 | entities[k].vx *= -1; |
Pokitto | 9:949027352af6 | 782 | } |
Pokitto | 9:949027352af6 | 783 | } |
Pokitto | 9:949027352af6 | 784 | } |
Pokitto | 9:949027352af6 | 785 | } |
Pokitto | 9:949027352af6 | 786 | |
Pokitto | 9:949027352af6 | 787 | if(entities[k].bitmap != PlayerC && player.invincible <= 0){ |
Pokitto | 9:949027352af6 | 788 | collide = gb.collideBitmapBitmap(player.x, player.y, character, entities[k].x, entities[k].y, entities[k].bitmap); |
Pokitto | 9:949027352af6 | 789 | } |
Pokitto | 9:949027352af6 | 790 | } |
Pokitto | 9:949027352af6 | 791 | |
Pokitto | 9:949027352af6 | 792 | for(int i = 0; i<6; i++){ |
Pokitto | 9:949027352af6 | 793 | for(int j = 0; j<64; j++){ |
Pokitto | 9:949027352af6 | 794 | _block = NULL; |
Pokitto | 9:949027352af6 | 795 | switch(curLevel[(i)*64+j]){ |
Pokitto | 9:949027352af6 | 796 | case 'G' : |
Pokitto | 9:949027352af6 | 797 | _block = Ground; |
Pokitto | 9:949027352af6 | 798 | break; |
Pokitto | 9:949027352af6 | 799 | case 'B' : |
Pokitto | 9:949027352af6 | 800 | _block = Brick; |
Pokitto | 9:949027352af6 | 801 | break; |
Pokitto | 9:949027352af6 | 802 | case '?' : |
Pokitto | 9:949027352af6 | 803 | _block = MysteryBlockC; |
Pokitto | 9:949027352af6 | 804 | break; |
Pokitto | 9:949027352af6 | 805 | case 'M' : |
Pokitto | 9:949027352af6 | 806 | _block = MysteryBlockM; |
Pokitto | 9:949027352af6 | 807 | break; |
Pokitto | 9:949027352af6 | 808 | case 'I' ://Invisible |
Pokitto | 9:949027352af6 | 809 | case 'E' : |
Pokitto | 9:949027352af6 | 810 | _block = Empty; |
Pokitto | 9:949027352af6 | 811 | break; |
Pokitto | 9:949027352af6 | 812 | case 'C' : |
Pokitto | 9:949027352af6 | 813 | _block = Coin; |
Pokitto | 9:949027352af6 | 814 | break; |
Pokitto | 9:949027352af6 | 815 | case 'F' : |
Pokitto | 9:949027352af6 | 816 | _block = Flag; |
Pokitto | 9:949027352af6 | 817 | break; |
Pokitto | 9:949027352af6 | 818 | case 'S' : |
Pokitto | 9:949027352af6 | 819 | _block = Spikes; |
Pokitto | 9:949027352af6 | 820 | break; |
Pokitto | 9:949027352af6 | 821 | default: |
Pokitto | 9:949027352af6 | 822 | break; |
Pokitto | 9:949027352af6 | 823 | } |
Pokitto | 9:949027352af6 | 824 | |
Pokitto | 9:949027352af6 | 825 | if(_block != NULL){ |
Pokitto | 9:949027352af6 | 826 | if(gb.collideBitmapBitmap(player.x, player.y, character, j*8, LCDHEIGHT - (8*(6-i)), _block)){ |
Pokitto | 9:949027352af6 | 827 | if(_block == Flag){ |
Pokitto | 9:949027352af6 | 828 | nextLevel(); |
Pokitto | 9:949027352af6 | 829 | } |
Pokitto | 9:949027352af6 | 830 | |
Pokitto | 9:949027352af6 | 831 | if(player.vy < 0 && player.y > LCDHEIGHT - (8*(5-i)) - 1 && (player.x < (j+1)*8 && player.x + 8 > j*8)){//Checks if under _block |
Pokitto | 9:949027352af6 | 832 | if(_block == Brick && player.big){ |
Pokitto | 9:949027352af6 | 833 | curLevel[i*64+j] = NULL; |
Pokitto | 9:949027352af6 | 834 | } |
Pokitto | 9:949027352af6 | 835 | if(_block == MysteryBlockC){ |
Pokitto | 9:949027352af6 | 836 | curLevel[(i-1)*64+j] = 'C'; |
Pokitto | 9:949027352af6 | 837 | curLevel[i*64+j] = 'E'; |
Pokitto | 9:949027352af6 | 838 | } |
Pokitto | 9:949027352af6 | 839 | if(_block == MysteryBlockM){ |
Pokitto | 9:949027352af6 | 840 | curLevel[i*64+j] = 'E'; |
Pokitto | 9:949027352af6 | 841 | addEnt(j*8, LCDHEIGHT - (8 * (7-i)), Mushroom); |
Pokitto | 9:949027352af6 | 842 | } |
Pokitto | 9:949027352af6 | 843 | } |
Pokitto | 9:949027352af6 | 844 | |
Pokitto | 9:949027352af6 | 845 | if(_block == Spikes){ |
Pokitto | 9:949027352af6 | 846 | getSmall(); |
Pokitto | 9:949027352af6 | 847 | collide = true; |
Pokitto | 9:949027352af6 | 848 | } |
Pokitto | 9:949027352af6 | 849 | |
Pokitto | 9:949027352af6 | 850 | if(_block == Coin){ |
Pokitto | 9:949027352af6 | 851 | score += 100; |
Pokitto | 9:949027352af6 | 852 | curLevel[i*64+j] = NULL; |
Pokitto | 9:949027352af6 | 853 | gb.sound.playOK(); |
Pokitto | 9:949027352af6 | 854 | collide = false; |
Pokitto | 9:949027352af6 | 855 | } |
Pokitto | 9:949027352af6 | 856 | |
Pokitto | 9:949027352af6 | 857 | else{ |
Pokitto | 9:949027352af6 | 858 | collide = true; |
Pokitto | 9:949027352af6 | 859 | } |
Pokitto | 9:949027352af6 | 860 | |
Pokitto | 9:949027352af6 | 861 | } |
Pokitto | 9:949027352af6 | 862 | } |
Pokitto | 9:949027352af6 | 863 | } |
Pokitto | 9:949027352af6 | 864 | } |
Pokitto | 9:949027352af6 | 865 | if(bounce){ |
Pokitto | 9:949027352af6 | 866 | player.vy = -4; |
Pokitto | 9:949027352af6 | 867 | bounce = false; |
Pokitto | 9:949027352af6 | 868 | } |
Pokitto | 9:949027352af6 | 869 | return collide; |
Pokitto | 9:949027352af6 | 870 | } |
Pokitto | 9:949027352af6 | 871 | |
Pokitto | 9:949027352af6 | 872 | |
Pokitto | 9:949027352af6 | 873 | |
Pokitto | 9:949027352af6 | 874 | const byte PlayerT[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B01100110,B01100110,B01100110,}; |
Pokitto | 9:949027352af6 | 875 | const byte PlayerT1[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B01100011,B01100011,B01100000,}; |
Pokitto | 9:949027352af6 | 876 | const byte PlayerT2[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B01100011,B01100011,B01100011,}; |
Pokitto | 9:949027352af6 | 877 | const byte PlayerT3[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B01100110,B11000110,B11000110,}; |
Pokitto | 9:949027352af6 | 878 | const byte PlayerT4[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B11000110,B11000110,B00000110,}; |
Pokitto | 9:949027352af6 | 879 | const byte PlayerT5[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B00110110,B00110110,B00000110,}; |
Pokitto | 9:949027352af6 | 880 | const byte PlayerT6[] PROGMEM = {8,16,B01111110,B11111111,B11100011,B11000000,B11001010,B10001010,B00000000,B00000000,B11111111,B11011011,B11011011,B11111111,B01111110,B01100110,B01100110,B01100000,}; |
Pokitto | 9:949027352af6 | 881 | const byte PlayerS[] PROGMEM = {8,8,B01111110,B01100001,B01101010,B01000000,B11111111,B11011011,B01111110,B01100110,}; |
Pokitto | 9:949027352af6 | 882 | const byte PlayerS1[] PROGMEM = {8,8,B01111110,B01100001,B01101010,B01000000,B11111111,B11011011,B01111110,B00111100,}; |
Pokitto | 9:949027352af6 | 883 | const byte PlayerC[] PROGMEM = {8,8,B01111110,B11000011,B00100100,B10100101,B10000001,B11111111,B01111110,B01100110,}; |
Pokitto | 9:949027352af6 | 884 | const byte Ground[] PROGMEM = {8,8,B11111111,B10001001,B10001001,B10001111,B11001001,B10110001,B10010001,B11111111,}; |
Pokitto | 9:949027352af6 | 885 | const byte Brick[] PROGMEM = {8,8,B11111111,B00010001,B11111111,B01000100,B11111111,B00010001,B11111111,B01000100,}; |
Pokitto | 9:949027352af6 | 886 | const byte Spikes[] PROGMEM = {8,8,B00100010,B00100010,B01010101,B01010101,B10001000,B10101010,B10101010,B11111111,}; |
Pokitto | 9:949027352af6 | 887 | const byte MysteryBlockC[] PROGMEM = {8,8,B11111111,B10011001,B10100101,B10000101,B10001001,B10000001,B10001001,B11111111,}; |
Pokitto | 9:949027352af6 | 888 | const byte MysteryBlockM[] PROGMEM = {8,8,B11111111,B10011001,B10100101,B10000101,B10001001,B10000001,B10001001,B11111111,}; |
Pokitto | 9:949027352af6 | 889 | const byte Coin[] PROGMEM = {8,8,B00011000,B00100100,B01010010,B01010010,B01001010,B01001010,B00100100,B00011000,}; |
Pokitto | 9:949027352af6 | 890 | const byte Empty[] PROGMEM = {8,8,B11111111,B10000001,B10000001,B10000001,B10000001,B10000001,B10000001,B11111111,}; |
Pokitto | 9:949027352af6 | 891 | const byte Flag[] PROGMEM = {8,8,B00111000,B00110110,B00101011,B00110110,B00111000,B00100000,B00100000,B01110000,}; |
Pokitto | 9:949027352af6 | 892 | const byte Mushroom[] PROGMEM = {8,8,B00111100,B01011010,B10100101,B11011011,B10000001,B01011010,B01000010,B00111100,}; |
Pokitto | 9:949027352af6 | 893 | const byte Goomba[] PROGMEM = {8,8,B00111100,B01000010,B10100101,B10100101,B01111110,B01000010,B10111111,B11100011,}; |
Pokitto | 9:949027352af6 | 894 | |
Pokitto | 9:949027352af6 | 895 | const byte Title[] PROGMEM = {64,30, |
Pokitto | 9:949027352af6 | 896 | B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 897 | B00000001,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 898 | B00001110,B00111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 899 | B00010100,B00010100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 900 | B00100100,B00010010,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 901 | B00101101,B11011010,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 902 | B01111010,B00101111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 903 | B01000100,B00010001,B00011000,B11000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 904 | B01000100,B00010001,B00011000,B11000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 905 | B10000010,B00100000,B10011000,B11000000,B00000000,B00000010,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 906 | B10000001,B11000000,B10010101,B01000000,B00000000,B00000010,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 907 | B10001111,B11110000,B10010101,B01000110,B00101001,B00001000,B01011000,B11110000, |
Pokitto | 9:949027352af6 | 908 | B11111000,B00011111,B10010101,B01000001,B00110101,B00001010,B01100101,B00001000, |
Pokitto | 9:949027352af6 | 909 | B00100010,B00100010,B00010010,B01000001,B00110101,B00001010,B01100101,B00001000, |
Pokitto | 9:949027352af6 | 910 | B00100010,B00100010,B00010000,B01000111,B00100001,B00001010,B01000101,B00001000, |
Pokitto | 9:949027352af6 | 911 | B00100010,B00100010,B00010000,B01001001,B00100001,B00001010,B01000101,B00001000, |
Pokitto | 9:949027352af6 | 912 | B00011000,B00001100,B00010000,B01001001,B00100001,B00001010,B01000101,B00001000, |
Pokitto | 9:949027352af6 | 913 | B00001000,B00001000,B00010000,B01000111,B10100000,B11111010,B01000100,B11110000, |
Pokitto | 9:949027352af6 | 914 | B00000111,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 915 | B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, |
Pokitto | 9:949027352af6 | 916 | B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, |
Pokitto | 9:949027352af6 | 917 | B00000100,B00010000,B01000001,B00000100,B00010000,B01000001,B00000100,B00010000, |
Pokitto | 9:949027352af6 | 918 | B00000100,B00010000,B01000001,B00000100,B00010000,B01000001,B00000100,B00010000, |
Pokitto | 9:949027352af6 | 919 | B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, |
Pokitto | 9:949027352af6 | 920 | B00100000,B10000010,B00001000,B00100000,B10000010,B00001000,B00100000,B10000010, |
Pokitto | 9:949027352af6 | 921 | B00100000,B10000010,B00001000,B00100000,B10000010,B00001000,B00100000,B10000010, |
Pokitto | 9:949027352af6 | 922 | B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, |
Pokitto | 9:949027352af6 | 923 | B00000100,B00010000,B01000001,B00000100,B00010000,B01000001,B00000100,B00010000, |
Pokitto | 9:949027352af6 | 924 | B00000100,B00010000,B01000001,B00000100,B00010000,B01000001,B00000100,B00010000, |
Pokitto | 9:949027352af6 | 925 | B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, |
Pokitto | 9:949027352af6 | 926 | }; |
Pokitto | 9:949027352af6 | 927 | |
Pokitto | 9:949027352af6 | 928 | /* |
Pokitto | 9:949027352af6 | 929 | SPOILERS AHEAD!!!!! ONLY SCROLL PAST THIS IF YOU WANT THE CODES SPOILED!!! |
Pokitto | 9:949027352af6 | 930 | |
Pokitto | 9:949027352af6 | 931 | |
Pokitto | 9:949027352af6 | 932 | |
Pokitto | 9:949027352af6 | 933 | |
Pokitto | 9:949027352af6 | 934 | |
Pokitto | 9:949027352af6 | 935 | |
Pokitto | 9:949027352af6 | 936 | |
Pokitto | 9:949027352af6 | 937 | |
Pokitto | 9:949027352af6 | 938 | |
Pokitto | 9:949027352af6 | 939 | |
Pokitto | 9:949027352af6 | 940 | |
Pokitto | 9:949027352af6 | 941 | |
Pokitto | 9:949027352af6 | 942 | |
Pokitto | 9:949027352af6 | 943 | |
Pokitto | 9:949027352af6 | 944 | |
Pokitto | 9:949027352af6 | 945 | |
Pokitto | 9:949027352af6 | 946 | |
Pokitto | 9:949027352af6 | 947 | |
Pokitto | 9:949027352af6 | 948 | |
Pokitto | 9:949027352af6 | 949 | |
Pokitto | 9:949027352af6 | 950 | |
Pokitto | 9:949027352af6 | 951 | |
Pokitto | 9:949027352af6 | 952 | |
Pokitto | 9:949027352af6 | 953 | |
Pokitto | 9:949027352af6 | 954 | |
Pokitto | 9:949027352af6 | 955 | |
Pokitto | 9:949027352af6 | 956 | |
Pokitto | 9:949027352af6 | 957 | */ |
Pokitto | 9:949027352af6 | 958 | |
Pokitto | 9:949027352af6 | 959 | void checkCode(char* code){ |
Pokitto | 9:949027352af6 | 960 | if(strstr(code, "\30\30\31\31\33\32\33\32\26\25\27")){ |
Pokitto | 9:949027352af6 | 961 | lives = 113; |
Pokitto | 9:949027352af6 | 962 | } |
Pokitto | 9:949027352af6 | 963 | if(strstr(code, "\50\42\55\42\51\57\57\40\174\137\174")){ |
Pokitto | 9:949027352af6 | 964 | character = Brick; |
Pokitto | 9:949027352af6 | 965 | player.h = 8; |
Pokitto | 9:949027352af6 | 966 | } |
Pokitto | 9:949027352af6 | 967 | if(strstr(code, "\141\152\163\142\61\61\63")){ |
Pokitto | 9:949027352af6 | 968 | score += 10; |
Pokitto | 9:949027352af6 | 969 | } |
Pokitto | 9:949027352af6 | 970 | if(strstr(code, "\101\40\143\157\144\145")){ |
Pokitto | 9:949027352af6 | 971 | numLevs = 7; |
Pokitto | 9:949027352af6 | 972 | } |
Pokitto | 9:949027352af6 | 973 | if(strstr(code, "\134\50\136\137\136\51\57")){ |
Pokitto | 9:949027352af6 | 974 | player.invincible = 2; |
Pokitto | 9:949027352af6 | 975 | } |
Pokitto | 9:949027352af6 | 976 | } |
Pokitto | 9:949027352af6 | 977 | |
Pokitto | 9:949027352af6 | 978 |