Wed Sep 28, 2016 2:09 pm
Wed Sep 28, 2016 6:30 pm
Wed Sep 28, 2016 6:56 pm
Wed Sep 28, 2016 10:04 pm
#include <SPI.h>
#include <Gamebuino.h>
Gamebuino gb;
const byte tilemap1[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2,26,26,26,26,26,26,26,26, 2,
2, 2, 2, 2, 2, 2, 2,19,26,26,26,26,26,26,26,26,20,
2, 2, 2, 2, 2, 2, 2,19,25,26,26,25,25,25,25,25,20,
2, 2, 2, 2, 2, 2,18, 4, 8,25,26,56,57,58,59,60,20,
2, 2, 2, 2, 2, 4, 8, 8, 8, 8,25,51,52,53,54,55,20,
2, 2, 2, 2, 4, 8, 8, 8, 8, 8, 8,46,47,48,49,50,20, /////////112x64 pix res
18,18,18, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3,
28, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,29,
21,21, 6, 8, 8, 8,22,23,24, 8, 8, 8, 8, 8, 5,21,21,
2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,20, 2, 2,
2, 2, 2,21,21,21,21,21,21,21,21,21,21,21, 2, 2, 2};
const byte tilemap2[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2,19,30,30, 3,18,18,18,18,18, 2,
2, 2, 2, 2, 2, 2, 2,19, 8, 8,27,27,27,27,27,27,20,
2, 2, 2, 2, 2, 2, 2,19, 8, 8,26,26,26,26,26,26,20,
2, 2, 2, 2, 2, 2,18, 4, 8, 8,25,26,26,26,26,26,20,
2, 2, 2, 2, 2, 4, 8, 8, 8, 8, 8,26,26,26,26,26,20,
2, 2, 2, 2, 4, 8, 8, 8, 8, 8, 8,26,26,26,26,26,20, /////////112x64 pix res
18,18,18, 4, 8, 8, 8,27, 8, 8, 8, 8,25,25,25,25, 3,
28, 8, 8, 8, 8, 8,27,26,27, 8, 8, 8, 8, 8, 8, 8,29,
21,21, 6, 8, 8,27,26,26,26,27, 8, 8, 8, 8, 5,21,21,
2, 2,19, 8, 8,25,25,25,25,25, 8, 8, 8, 8,20, 2, 2,
2, 2, 2,21,21,21,21,21,21,21,21,21,21,21, 2, 2, 2};
const byte tilemap3[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2,18,18,18,18,18,18,18,18, 2,
2, 2, 2, 2, 2, 2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8,20,
2, 2, 2, 2, 2, 2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8,20,
2,18,18,18,18,18,18, 4, 8, 8, 8, 8, 5,21,21,21, 2,
19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 2, 2, 2, 2,
19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 2, 2, 2, 2, 2, /////////112x64 pix res
19, 8, 8, 5,21,21,21, 6, 8, 8,20, 2, 2, 2, 2, 2, 2,
19, 8, 8,20, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
19,34, 8,20, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
2,21,21, 2, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2,19,28,28,20, 2, 2, 2, 2, 2, 2};
const byte tilemap4[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2,18,18,18,18,18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8, 8,36, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8, 8, 8, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /////////112x64 pix res
19, 8, 8, 5,21,21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19,35, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2,21,21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
const byte tilemap5[] PROGMEM = {12,11,
8,8,
45,45,45,45,45,45,45,45,45,45,45,45,
45,45,37,37,37,37,37,37,37,45,45,45,
45,41,61,61,61,61,61,62,61,40,45,45,
45,41, 8, 8, 8, 8, 8,63, 8,40,45,45,
45,41, 8, 8, 8, 8, 8,64, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45, /////////112x64 pix res
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,45,42,42,44, 8,43,42,42,45,45,45,
45,45,45,45,41,28,40,45,45,45,45,45,};
const byte bush[] PROGMEM = {B00101100,B01010010,B10001001,B01000010,B10010001,B01001010,B00100100,B01111110,};
const byte port_noir[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte rock_terrain_master[] PROGMEM = {B00000010,B00010000,B01000000,B00000010,B00010000,B00001000,B01000001,B00000100,};
const byte rock_valley_ne[] PROGMEM = {B10100000,B11001001,B01110000,B00001100,B00000101,B00000100,B00000110,B00000011,};
const byte rock_valley_nw[] PROGMEM = {B00000101,B10010011,B00001110,B00110000,B10100000,B00100000,B01100000,B11000000,};
const byte rock_valley_se[] PROGMEM = {B00000011,B00000110,B00000100,B00000101,B00001100,B01110000,B11001001,B10100000,};
const byte rock_valley_sw[] PROGMEM = {B11000000,B01100000,B00100000,B10100000,B00110000,B00001110,B10010011,B00000101,};
const byte turtle_rock[] PROGMEM = {B01101100,B10110010,B11010001,B01010101,B01010010,B10011001,B10000001,B11111110,};
const byte void_tile[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte water_left_bottom[] PROGMEM = {B10001111,B10000000,B11110000,B10000000,B10001111,B10000000,B11110000,B11111111,};
const byte water_left_middle[] PROGMEM = {B10001111,B10000000,B11110000,B10000000,B10001111,B10000000,B11110000,B10000000,};
const byte water_left_top[] PROGMEM = {B11111111,B10000000,B11110000,B10001111,B10000000,B10000000,B11110000,B10000000,};
const byte water_right_bottom[] PROGMEM = {B1110001,B00000001,B0000111,B00000001,B11110001,B00000001,B00001111,B11111111,};
const byte water_right_middle[] PROGMEM = {B11110001,B00000001,B00001111,B00000001,B11110001,B00000001,B00001111,B00000001,};
const byte water_right_top[] PROGMEM = {B11111111,B00000001,B00001111,B00000001,B11110001,B00000001,B00001111,B00000001,};
const byte water_middle_bottom[] PROGMEM = {B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,B00001111,B11111111,};
const byte water_middle_middle[] PROGMEM = {B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,B00001111,B00000000,};
const byte water_middle_top[] PROGMEM = {B11111111,B00000000,B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,};
const byte rock_s[] PROGMEM = {B00010010,B00000000,B01001000,B00000100,B00100001,B10001100,B01110010,B10000001,};
const byte rock_e[] PROGMEM = {B00000101,B00100010,B00001010,B10000010,B00100100,B00010100,B10000010,B00001001,};
const byte rock_n[] PROGMEM = {B10000001,B01110010,B10001100,B00100001,B00000100,B01001000,B00000000,B00010010,};
const byte rock_w[] PROGMEM = {B10100000,B01000100,B01010000,B01000001,B00100100,B00101000,B01000001,B10010000,};
const byte bush_left[] PROGMEM = {B00111011,B01000100,B10100000,B10010100,B01000010,B10000000,B10001000,B01110111,};
const byte bush_middle[] PROGMEM = {B10111101,B01000010,B00001000,B10000100,B00010000,B00100001,B10001000,B01110111,};
const byte bush_right[] PROGMEM = {B11011100,B00100010,B00000101,B00101001,B01000010,B00000001,B00010001,B11101110,};
const byte tree_base[] PROGMEM = {B01010100,B01000100,B10100010,B10001010,B10000010,B01101100,B00101000,B00101000,};
const byte tree_repeat[] PROGMEM = {B01010100,B01000100,B10000010,B10010010,B10101010,B01101100,B00101000,B01000100,};
const byte tree_top[] PROGMEM = {B00000000,B00000000,B00000000,B00010000,B00101000,B00101000,B00101000,B01000100,};
const byte exit_1[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_2[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_3[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_4[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_5[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_6[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte cave_ladder[] PROGMEM = {B11000011,B11011011,B11000011,B11011011,B11000011,B11011011,B11000011,B11011011,};
const byte ladder[] PROGMEM = {B00111100,B00100100,B00111100,B00100100,B00111100,B00100100,B00111100,B00100100,};
const byte tombstone[] PROGMEM = {B00111100,B01000010,B10000001,B10111001,B10000001,B10101101,B10000001,B11111111,};
const byte WallB[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B00000000,B11111111,};
const byte WallBL[] PROGMEM = {B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10000000,B11111111,};
const byte WallBR[] PROGMEM = {B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B00000001,B11111111,};
const byte WallL[] PROGMEM = {B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,};
const byte WallR[] PROGMEM = {B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,};
const byte WallT[] PROGMEM = {B11111111,B00000000,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte WallTL[] PROGMEM = {B11111111,B10000000,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,};
const byte WallTR[] PROGMEM = {B11111111,B00000001,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,};
const byte blackwall[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte houseB1[] PROGMEM = {B01010011,B01010010,B01010010,B01010001,B11110000,B10011111,B10010010,B11111111,};
const byte houseB2[] PROGMEM = {B11111000,B01001000,B01001000,B11110000,B00000000,B11111111,B01001000,B11111111,};
const byte houseB3[] PROGMEM = {B00111100,B01100110,B11000011,B10011001,B10000001,B10000101,B10000001,B11111111,};
const byte houseB4[] PROGMEM = {B00011111,B00010010,B00010010,B00001111,B00000000,B11111111,B00010010,B11111111,};
const byte houseB5[] PROGMEM = {B11001010,B01001010,B01001010,B10001010,B00001111,B11111001,B01001001,B11111111,};
const byte houseT1[] PROGMEM = {B11111111,B01010010,B01011111,B01010000,B01010000,B11110001,B10010010,B11110010,};
const byte houseT2[] PROGMEM = {B11111111,B01001001,B11111111,B00000000,B00000000,B11110000,B01001000,B01001000,};
const byte houseT3[] PROGMEM = {B11111111,B00100100,B11111111,B00000000,B01111110,B10100101,B11111111,B00000000,};
const byte houseT4[] PROGMEM = {B11111111,B10010010,B11111111,B00000000,B00000000,B00001111,B00010010,B00010010,};
const byte houseT5[] PROGMEM = {B11111111,B01001010,B11111010,B00001010,B00001010,B10001111,B01001001,B01001111,};
const byte roof1[] PROGMEM = {B00000000,B00011111,B00110010,B00101101,B01000000,B01010010,B11101101,B10000000,};
const byte roof2[] PROGMEM = {B00000000,B11111111,B01001001,B10110110,B00000000,B01001001,B10110110,B00000000,};
const byte roof3[] PROGMEM = {B00000000,B11111111,B00100100,B11011011,B00000000,B00100100,B11011011,B00000000,};
const byte roof4[] PROGMEM = {B00000111,B11111100,B10010111,B01101100,B00000100,B10010111,B01101101,B00000000,};
const byte roof5[] PROGMEM = {B10000000,B11111000,B11001100,B10110100,B10000010,B11001010,B10110111,B00000001,};
const byte wallpaper[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,};
const byte bedbottom[] PROGMEM = {B10111101,B11000011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte bedmid[] PROGMEM = {B11111111,B10000001,B10000001,B10000001,B10111101,B11000011,B10000001,B10000001,};
const byte bedtop[] PROGMEM = {B00000000,B00000000,B00000000,B00111100,B11000011,B10000001,B10111101,B10100101,};
const byte *spritesheet[] = {bush, //0
port_noir, //1
rock_terrain_master, //2
rock_valley_ne, //3
rock_valley_nw, //4
rock_valley_se, //5
rock_valley_sw, //6
turtle_rock, //7
void_tile, //8
water_left_bottom, //9
water_left_middle, //10
water_left_top, //11
water_right_bottom, //12
water_right_middle, //13
water_right_top, //14
water_middle_bottom, //15
water_middle_middle, //16
water_middle_top, //17
rock_s, //18
rock_e, //19
rock_w, //20
rock_n, //21
bush_left, //22
bush_middle, //23
bush_right, //24
tree_base, //25
tree_repeat, //26
tree_top, //27
exit_1, //28
exit_2, //29
exit_3, //30
exit_4, //31
exit_5, //32
exit_6, //33
cave_ladder, //34
ladder, //35
tombstone, //36
WallB, //37
WallBL, //38
WallBR, //39
WallL, //40
WallR, //41
WallT, //42
WallTL, //43
WallTR, //44
blackwall, //45
houseB1, //46
houseB2, //47
houseB3, //48
houseB4, //49
houseB5, //50
houseT1, //51
houseT2, //52
houseT3, //53
houseT4, //54
houseT5, //55
roof1, //56
roof2, //57
roof3, //58
roof4, //59
roof5, //60
wallpaper, //61
bedtop, //62
bedmid, //63
bedbottom}; //64
const byte backblack[] PROGMEM = {8,8,0x7E,0x42,0x42,0x3C,0x7E,0x3C,0x3C,0x24,};
const byte backgrey[] PROGMEM = {8,8,0x1,0x1,0x1,0xC1,0x81,0xC0,0x40,0x0,};
const byte frontblack[] PROGMEM = {8,8,0x7E,0x66,0x42,0x38,0x78,0x38,0x3C,0x24,};
const byte frontgrey[] PROGMEM = {8,8,0x80,0x80,0x80,0x87,0x87,0x7,0x2,0x0,};
const byte leftblack[] PROGMEM = {8,8,0x3E,0x32,0x22,0x1C,0x1C,0x1C,0x1C,0x14,};
const byte leftgrey[] PROGMEM = {8,8,0x0,0x0,0x0,0x60,0x60,0x60,0x40,0x0,};
const byte rightblack[] PROGMEM = {8,8,0x7C,0x4C,0x44,0x38,0x3C,0x38,0x38,0x28,};
const byte rightgrey[] PROGMEM = {8,8,0x2,0x2,0x2,0x2,0x2,0x0,0x0,0x0,};
int player_x = 70; //cant get these to center
int player_y = 40; //cant get these to center
int player_direction = 0;
int room = 1;
int co_ords = 1;
int x,y; ///if 0 player spite will not move, -50,50 no tilemap
//////CAMERA//////
int camerax = -20 ;
int cameray = -20 ;
int animTransition;
void setup() {
gb.begin();
gb.titleScreen(F("test"));
gb.setFrameRate(62); ////////for sprite
gb.display.persistence = false;
// animTransition=-6;
}
/////////PLAYER_MOVEMENT\\\\\\\\\
void loop() {
if(gb.update()){
if (gb.buttons.repeat(BTN_RIGHT,1));{x--;}
if (gb.buttons.repeat(BTN_LEFT,1));{x++;}
if (gb.buttons.repeat(BTN_DOWN,1));{y--;}
if (gb.buttons.repeat(BTN_UP,1));{y++;}
// if(player_x > 64 ) {camerax-=2; player_x -=2;} //Y Scrolling right
//else if(player_x < 10 ){camerax+=2; player_x +=2;} //Y Scrolling left
// if(player_y > 28 ) {cameray-=2; player_y -=2;} //Y Scrolling Down
//else if(player_y < 10 ){cameray+=2; player_y +=2;} //Y Scrolling Up
// if(cameray > 0)cameray=0;
//else if(cameray < -24) cameray = -24;
// if(camerax > 0)camerax=0;
//else if(camerax < -36) camerax = -36;
if(player_x > 59 && camerax < 0 && camerax > -52){player_x = 59;camerax--;}
else if(player_x < 15 && camerax < 0 && camerax > -52){player_x = 15;camerax++;}
else if(player_x > 59 && camerax <= 0 && camerax >= -52)camerax--;
else if(player_x < 15 && camerax <= 0 && camerax >= -52)camerax++;
if(player_y > 28 && cameray < 0 && cameray > -40){player_y = 28;cameray--;}
else if(player_y < 15 && cameray < 0 && cameray > -40){player_y = 15;cameray++;}
else if(player_y > 28 && cameray <= 0 && cameray >= -40)cameray--;
else if(player_y < 15 && cameray <= 0 && cameray >= -40)cameray++;
if(camerax > 0)camerax= 0;
else if(camerax < -52) camerax = -52;
if(cameray > 0)cameray= 0;
else if(cameray < -40) cameray = -40;
if(room == 1){
gb.display.drawTilemap(camerax,cameray,tilemap1,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 2){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap2,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 3){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap3,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 4){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap4,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 5){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap5,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
//if(gb.buttons.repeat(BTN_A,1)){
// gb.display.setColor(BLACK);
// gb.display.fillRect(0,0,84,48);
// gb.display.setColor(WHITE);
// gb.display.fillRect(animTransition,animTransition,84-(2*animTransition),48-(2*animTransition));
// gb.display.setColor(BLACK);
// {animTransition = animTransition + 6;}
// }
// if(gb.buttons.repeat(BTN_B,1)){
// gb.display.setColor(BLACK);
// gb.display.fillRect(0,0,84,48);
// gb.display.setColor(WHITE);
// gb.display.fillRect(animTransition,animTransition,84-(2*animTransition),48-(2*animTransition));
// gb.display.setColor(BLACK);
// {animTransition = animTransition - 6;}
// }
if(gb.buttons.repeat(BTN_UP,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,backblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,backgrey);
}
player_direction = 1;
player_y = player_y - 1;
if(checkcolision())player_y++; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_y <= 0){
player_y = 0;}
if(gb.buttons.repeat(BTN_DOWN,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
player_direction = 2;
player_y = player_y + 1;
if(checkcolision())player_y--; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_y >= 40){
player_y = 40;}
if(gb.buttons.repeat(BTN_RIGHT,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,rightblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,rightgrey);
}
player_direction = 3;
player_x = player_x + 1;
if(checkcolision())player_x--; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_x >= 77){
player_x = 77;}
if(gb.buttons.repeat(BTN_LEFT,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,leftblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,leftgrey);
}
player_direction = 4;
player_x = player_x - 1;
if(checkcolision())player_x++; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_x <= -2){
player_x = -2;}
////////////PLAYER DIRECTION/////////////
if (player_direction == 1){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,backblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,backgrey);
}
}
else if (player_direction == 2){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
}
else if (player_direction == 3){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,rightblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,rightgrey);
}
}
else if (player_direction == 4){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,leftblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,leftgrey);
}
}
else { gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
}
}
gb.display.setColor(BLACK);
if(gb.buttons.held(BTN_B,20)){
co_ords = co_ords + 1;}
if(co_ords == 1){
gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );}
else if(co_ords == 2){
gb.display.cursorY = 12; gb.display.println( camerax );gb.display.println( cameray );}
else if(co_ords >= 3){
co_ords = 0;}
}
bool checkcolision() // Transformed it into a function
{
uint16_t i;
for(i=0; i < gb.display.numcolision + 1; i++)
{
if(gb.collideRectRect(player_x,player_y,8,8,gb.display.solid[i].x,gb.display.solid[i].y,8,8))///changed player_x,y back to 8
{
// if(gb.display.solid[i].spritecol == void_tile); //Do nothing because it's floor - This line not needed
if(gb.display.solid[i].spritecol == bush) return true;
else if(gb.display.solid[i].spritecol == port_noir) return true;
else if(gb.display.solid[i].spritecol == rock_terrain_master) {gb.popup(F(" ""Rock"" "),1); return true;} //Return True if character have touched the wall
else if(gb.display.solid[i].spritecol == rock_valley_ne) return true;
else if(gb.display.solid[i].spritecol == rock_valley_nw) return true;
else if(gb.display.solid[i].spritecol == rock_valley_se) return true;
else if(gb.display.solid[i].spritecol == rock_valley_sw) return true;
else if(gb.display.solid[i].spritecol == turtle_rock) return true;
else if(gb.display.solid[i].spritecol == water_left_bottom) return true;
else if(gb.display.solid[i].spritecol == water_left_middle) return true;
else if(gb.display.solid[i].spritecol == water_left_top) return true;
else if(gb.display.solid[i].spritecol == water_right_bottom) return true;
else if(gb.display.solid[i].spritecol == water_right_middle) return true;
else if(gb.display.solid[i].spritecol == water_right_top) return true;
else if(gb.display.solid[i].spritecol == water_middle_bottom) return true;
else if(gb.display.solid[i].spritecol == water_middle_middle) return true;
else if(gb.display.solid[i].spritecol == water_middle_top) return true;
else if(gb.display.solid[i].spritecol == rock_n) return true;
else if(gb.display.solid[i].spritecol == rock_e) return true;
else if(gb.display.solid[i].spritecol == rock_s) return true;
else if(gb.display.solid[i].spritecol == rock_w) return true;
else if(gb.display.solid[i].spritecol == bush_left) return true;
else if(gb.display.solid[i].spritecol == bush_middle) return true;
else if(gb.display.solid[i].spritecol == bush_right) return true;
//else if(gb.display.solid[i].spritecol == bush_left) {gb.popup(F(" ""A bush!!"" "),1); return true;}
//else if(gb.display.solid[i].spritecol == bush_middle) {gb.popup(F(" ""A bush!!"" "),1); return true;}
//else if(gb.display.solid[i].spritecol == bush_right) {gb.popup(F(" ""A bush!!"" "),1); return true;}
else if(gb.display.solid[i].spritecol == tree_base) return true;
else if(gb.display.solid[i].spritecol == tree_repeat) return true;
else if(gb.display.solid[i].spritecol == tree_top) return true;
else if((gb.display.solid[i].spritecol == exit_1) && room == 1) {room = 2; player_x = 68; camerax = -52;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 2) {room = 1; player_x = 68; camerax = -52;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 3) {room = 2; player_y = 9; cameray = 0;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 5) {room = 1; player_y = 27; player_x = 59; camerax = -45; cameray = -21;}
else if((gb.display.solid[i].spritecol == exit_2) && room == 1) {room = 2; player_x = 9; camerax = 0;}
else if((gb.display.solid[i].spritecol == exit_2) && room == 2) {room = 1; player_x = 9; camerax = 0;}
else if((gb.display.solid[i].spritecol == exit_3) && room == 2) {room = 3; player_y = 32; cameray = -40;}
else if(gb.display.solid[i].spritecol == exit_4) return true;
else if(gb.display.solid[i].spritecol == exit_5) return true;
else if(gb.display.solid[i].spritecol == exit_6) return true;
else if((gb.display.solid[i].spritecol == cave_ladder) && room ==3) {room = 4; player_x = 16; player_y = 24; camerax = 0; cameray = -48;}
else if((gb.display.solid[i].spritecol == ladder) && room == 4) {room = 3; player_x = 16; player_y = 24; camerax = 0; cameray = -48;}
else if((gb.display.solid[i].spritecol == tombstone) && gb.buttons.repeat(BTN_A,1)) {gb.popup(F(" ""Here Lies Dave!"" "),1); return true;}
else if(gb.display.solid[i].spritecol == tombstone) return true;
else if(gb.display.solid[i].spritecol == WallB) return true;
else if(gb.display.solid[i].spritecol == WallBL) return true;
else if(gb.display.solid[i].spritecol == WallBR) return true;
else if(gb.display.solid[i].spritecol == WallT) return true;
else if(gb.display.solid[i].spritecol == WallTL) return true;
else if(gb.display.solid[i].spritecol == WallTR) return true;
else if(gb.display.solid[i].spritecol == WallL) return true;
else if(gb.display.solid[i].spritecol == WallR) return true;
else if(gb.display.solid[i].spritecol == houseB1) return true;
else if(gb.display.solid[i].spritecol == houseB2) return true;
else if((gb.display.solid[i].spritecol == houseB3) && room == 1) {room = 5; player_y = 32; player_x = 40; camerax = -0; cameray = -40;}
else if(gb.display.solid[i].spritecol == houseB4) return true;
else if(gb.display.solid[i].spritecol == houseB5) return true;
else if(gb.display.solid[i].spritecol == houseT1) return true;
else if(gb.display.solid[i].spritecol == houseT2) return true;
else if(gb.display.solid[i].spritecol == houseT3) return true;
else if(gb.display.solid[i].spritecol == houseT4) return true;
else if(gb.display.solid[i].spritecol == houseT5) return true;
else if(gb.display.solid[i].spritecol == roof1) return true;
else if(gb.display.solid[i].spritecol == roof2) return true;
else if(gb.display.solid[i].spritecol == roof3) return true;
else if(gb.display.solid[i].spritecol == roof4) return true;
else if(gb.display.solid[i].spritecol == roof5) return true;
else if((gb.display.solid[i].spritecol == bedtop) && gb.buttons.repeat(BTN_A,1)) {gb.popup(F(" ""Aaah! My bed"" "),1); return true;}
else if(gb.display.solid[i].spritecol == bedtop) return true;
else if((gb.display.solid[i].spritecol == bedmid) && gb.buttons.repeat(BTN_A,1)) {gb.popup(F(" ""Aaah! My bed"" "),1); return true;}
else if(gb.display.solid[i].spritecol == bedmid) return true;
else if((gb.display.solid[i].spritecol == bedbottom) && gb.buttons.repeat(BTN_A,1)) {gb.popup(F(" ""Aaah! My bed"" "),1);}
}
}
return false; // Return false if don't touch anything
}
int room = 1;
if(room == 1){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap1,spritesheet);}
if(room == 2){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap2,spritesheet);}
if(room == 3){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap3,spritesheet);}
if(room == 4){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap4,spritesheet);}
if(room == 5){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap5,spritesheet);}
else if((gb.display.solid[i].spritecol == exit_1) && room == 5) {room = 1; player_y = 27; player_x = 59; camerax = -45; cameray = -21;}
else if((gb.display.solid[i].spritecol == bedtop) && gb.buttons.repeat(BTN_A,1)) {gb.popup(F(" ""Aaah! My bed"" "),1); return true;}
else if(gb.display.solid[i].spritecol == bedtop) return true;
Fri Sep 30, 2016 8:52 am
Fri Sep 30, 2016 11:46 am
Sat Oct 01, 2016 3:05 am
Sat Oct 01, 2016 10:32 pm
#include <SPI.h>
#include <Gamebuino.h>
Gamebuino gb;
const byte tilemap1[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2,26,26,26,26,26,26,26,26, 2,
2, 2, 2, 2, 2, 2, 2,19,26,26,26,26,26,26,26,26,20,
2, 2, 2, 2, 2, 2, 2,19,25,26,26,25,25,25,25,25,20,
2, 2, 2, 2, 2, 2,18, 4, 8,25,26,56,57,58,59,60,20,
2, 2, 2, 2, 2, 4, 8, 8, 8,65,25,51,52,53,54,55,20,
2, 2, 2, 2, 4, 8, 8, 8, 8, 8, 8,46,47,48,49,50,20, /////////112x64 pix res
18,18,18, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3,
28, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,29,
21,21, 6, 8, 8, 8,22,23,24, 8, 8, 8, 8, 8, 5,21,21,
2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,20, 2, 2,
2, 2, 2,21,21,21,21,21,21,21,21,21,21,21, 2, 2, 2};
const byte tilemap2[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2,19,30,30, 3,18,18,18,18,18, 2,
2, 2, 2, 2, 2, 2, 2,19, 8, 8,27,27,27,27,27,27,20,
2, 2, 2, 2, 2, 2, 2,19, 8, 8,26,26,26,26,26,26,20,
2, 2, 2, 2, 2, 2,18, 4, 8, 8,25,26,26,26,26,26,20,
2, 2, 2, 2, 2, 4, 8, 8, 8, 8, 8,26,26,26,26,26,20,
2, 2, 2, 2, 4, 8, 8, 8, 8, 8, 8,26,26,26,26,26,20, /////////112x64 pix res
18,18,18, 4, 8, 8, 8,27, 8, 8, 8, 8,25,25,25,25, 3,
28, 8, 8, 8, 8, 8,27,26,27, 8, 8, 8, 8, 8, 8, 8,29,
21,21, 6, 8, 8,27,26,26,26,27, 8, 8, 8, 8, 5,21,21,
2, 2,19, 8, 8,25,25,25,25,25, 8, 8, 8, 8,20, 2, 2,
2, 2, 2,21,21,21,21,21,21,21,21,21,21,21, 2, 2, 2};
const byte tilemap3[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2,18,18,18,18,18,18,18,18, 2,
2, 2, 2, 2, 2, 2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8,20,
2, 2, 2, 2, 2, 2, 2,19, 8, 8, 8, 8, 8, 8, 8, 8,20,
2,18,18,18,18,18,18, 4, 8, 8, 8, 8, 5,21,21,21, 2,
19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 2, 2, 2, 2,
19, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 2, 2, 2, 2, 2, /////////112x64 pix res
19, 8, 8, 5,21,21,21, 6, 8, 8,20, 2, 2, 2, 2, 2, 2,
19, 8, 8,20, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
19,34, 8,20, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
2,21,21, 2, 2, 2, 2,19, 8, 8,20, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2,19,28,28,20, 2, 2, 2, 2, 2, 2};
const byte tilemap4[] PROGMEM = {17,11,
8,8,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2,18,18,18,18,18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8, 8,36, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8, 8, 8, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /////////112x64 pix res
19, 8, 8, 5,21,21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19, 8, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19,35, 8,20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2,21,21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
const byte tilemap5[] PROGMEM = {12,11,
8,8,
45,45,45,45,45,45,45,45,45,45,45,45,
45,45,37,37,37,37,37,37,37,45,45,45,
45,41,61,61,61,61,66,62,61,40,45,45,
45,41, 8, 8, 8, 8,67,63, 8,40,45,45,
45,41, 8, 8, 8, 8, 8,64, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45, /////////112x64 pix res
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,41, 8, 8, 8, 8, 8, 8, 8,40,45,45,
45,45,42,42,44, 8,43,42,42,45,45,45,
45,45,45,45,41,28,40,45,45,45,45,45,};
const byte bush[] PROGMEM = {B00101100,B01010010,B10001001,B01000010,B10010001,B01001010,B00100100,B01111110,};
const byte port_noir[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte rock_terrain_master[] PROGMEM = {B00000010,B00010000,B01000000,B00000010,B00010000,B00001000,B01000001,B00000100,};
const byte rock_valley_ne[] PROGMEM = {B10100000,B11001001,B01110000,B00001100,B00000101,B00000100,B00000110,B00000011,};
const byte rock_valley_nw[] PROGMEM = {B00000101,B10010011,B00001110,B00110000,B10100000,B00100000,B01100000,B11000000,};
const byte rock_valley_se[] PROGMEM = {B00000011,B00000110,B00000100,B00000101,B00001100,B01110000,B11001001,B10100000,};
const byte rock_valley_sw[] PROGMEM = {B11000000,B01100000,B00100000,B10100000,B00110000,B00001110,B10010011,B00000101,};
const byte turtle_rock[] PROGMEM = {B01101100,B10110010,B11010001,B01010101,B01010010,B10011001,B10000001,B11111110,};
const byte void_tile[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte water_left_bottom[] PROGMEM = {B10001111,B10000000,B11110000,B10000000,B10001111,B10000000,B11110000,B11111111,};
const byte water_left_middle[] PROGMEM = {B10001111,B10000000,B11110000,B10000000,B10001111,B10000000,B11110000,B10000000,};
const byte water_left_top[] PROGMEM = {B11111111,B10000000,B11110000,B10001111,B10000000,B10000000,B11110000,B10000000,};
const byte water_right_bottom[] PROGMEM = {B1110001,B00000001,B0000111,B00000001,B11110001,B00000001,B00001111,B11111111,};
const byte water_right_middle[] PROGMEM = {B11110001,B00000001,B00001111,B00000001,B11110001,B00000001,B00001111,B00000001,};
const byte water_right_top[] PROGMEM = {B11111111,B00000001,B00001111,B00000001,B11110001,B00000001,B00001111,B00000001,};
const byte water_middle_bottom[] PROGMEM = {B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,B00001111,B11111111,};
const byte water_middle_middle[] PROGMEM = {B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,B00001111,B00000000,};
const byte water_middle_top[] PROGMEM = {B11111111,B00000000,B11110000,B00000000,B00001111,B00000000,B11110000,B00000000,};
const byte rock_s[] PROGMEM = {B00010010,B00000000,B01001000,B00000100,B00100001,B10001100,B01110010,B10000001,};
const byte rock_e[] PROGMEM = {B00000101,B00100010,B00001010,B10000010,B00100100,B00010100,B10000010,B00001001,};
const byte rock_n[] PROGMEM = {B10000001,B01110010,B10001100,B00100001,B00000100,B01001000,B00000000,B00010010,};
const byte rock_w[] PROGMEM = {B10100000,B01000100,B01010000,B01000001,B00100100,B00101000,B01000001,B10010000,};
const byte bush_left[] PROGMEM = {B00111011,B01000100,B10100000,B10010100,B01000010,B10000000,B10001000,B01110111,};
const byte bush_middle[] PROGMEM = {B10111101,B01000010,B00001000,B10000100,B00010000,B00100001,B10001000,B01110111,};
const byte bush_right[] PROGMEM = {B11011100,B00100010,B00000101,B00101001,B01000010,B00000001,B00010001,B11101110,};
const byte tree_base[] PROGMEM = {B01010100,B01000100,B10100010,B10001010,B10000010,B01101100,B00101000,B00101000,};
const byte tree_repeat[] PROGMEM = {B01010100,B01000100,B10000010,B10010010,B10101010,B01101100,B00101000,B01000100,};
const byte tree_top[] PROGMEM = {B00000000,B00000000,B00000000,B00010000,B00101000,B00101000,B00101000,B01000100,};
const byte exit_1[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_2[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_3[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_4[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_5[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte exit_6[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte cave_ladder[] PROGMEM = {B11000011,B11011011,B11000011,B11011011,B11000011,B11011011,B11000011,B11011011,};
const byte ladder[] PROGMEM = {B00111100,B00100100,B00111100,B00100100,B00111100,B00100100,B00111100,B00100100,};
const byte tombstone[] PROGMEM = {B00111100,B01000010,B10000001,B10111001,B10000001,B10101101,B10000001,B11111111,};
const byte WallB[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B00000000,B11111111,};
const byte WallBL[] PROGMEM = {B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10000000,B11111111,};
const byte WallBR[] PROGMEM = {B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B00000001,B11111111,};
const byte WallL[] PROGMEM = {B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,};
const byte WallR[] PROGMEM = {B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,};
const byte WallT[] PROGMEM = {B11111111,B00000000,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte WallTL[] PROGMEM = {B11111111,B10000000,B10111111,B10111111,B10111111,B10111111,B10111111,B10111111,};
const byte WallTR[] PROGMEM = {B11111111,B00000001,B11111101,B11111101,B11111101,B11111101,B11111101,B11111101,};
const byte blackwall[] PROGMEM = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,};
const byte houseB1[] PROGMEM = {B01010011,B01010010,B01010010,B01010001,B11110000,B10011111,B10010010,B11111111,};
const byte houseB2[] PROGMEM = {B11111000,B01001000,B01001000,B11110000,B00000000,B11111111,B01001000,B11111111,};
const byte houseB3[] PROGMEM = {B00111100,B01100110,B11000011,B10011001,B10000001,B10000101,B10000001,B11111111,};
const byte houseB4[] PROGMEM = {B00011111,B00010010,B00010010,B00001111,B00000000,B11111111,B00010010,B11111111,};
const byte houseB5[] PROGMEM = {B11001010,B01001010,B01001010,B10001010,B00001111,B11111001,B01001001,B11111111,};
const byte houseT1[] PROGMEM = {B11111111,B01010010,B01011111,B01010000,B01010000,B11110001,B10010010,B11110010,};
const byte houseT2[] PROGMEM = {B11111111,B01001001,B11111111,B00000000,B00000000,B11110000,B01001000,B01001000,};
const byte houseT3[] PROGMEM = {B11111111,B00100100,B11111111,B00000000,B01111110,B10100101,B11111111,B00000000,};
const byte houseT4[] PROGMEM = {B11111111,B10010010,B11111111,B00000000,B00000000,B00001111,B00010010,B00010010,};
const byte houseT5[] PROGMEM = {B11111111,B01001010,B11111010,B00001010,B00001010,B10001111,B01001001,B01001111,};
const byte roof1[] PROGMEM = {B00000000,B00011111,B00110010,B00101101,B01000000,B01010010,B11101101,B10000000,};
const byte roof2[] PROGMEM = {B00000000,B11111111,B01001001,B10110110,B00000000,B01001001,B10110110,B00000000,};
const byte roof3[] PROGMEM = {B00000000,B11111111,B00100100,B11011011,B00000000,B00100100,B11011011,B00000000,};
const byte roof4[] PROGMEM = {B00000111,B11111100,B10010111,B01101100,B00000100,B10010111,B01101101,B00000000,};
const byte roof5[] PROGMEM = {B10000000,B11111000,B11001100,B10110100,B10000010,B11001010,B10110111,B00000001,};
const byte wallpaper[] PROGMEM = {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,};
const byte bedbottom[] PROGMEM = {B10111101,B11000011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte bedmid[] PROGMEM = {B11111111,B10000001,B10000001,B10000001,B10111101,B11000011,B10000001,B10000001,};
const byte bedtop[] PROGMEM = {B00000000,B00000000,B00000000,B00111100,B11000011,B10000001,B10111101,B10100101,};
const byte menu1[] PROGMEM = {88,48,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00001100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B00000000,B00010001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111000,B10000000,B00100110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B01000000,B00101000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B01000000,B01001000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B00100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B11111111,B11110000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11110000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10100000,B01001000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B00100000,B00101000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B01000000,B00100110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B01000000,B00010001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111000,B10000000,B00001100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte menu2[] PROGMEM = {88,48,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00001110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000000,B00011001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111001,B10000000,B00010111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B10000000,B00110111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B11000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B00000000,B00001111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B00000000,B00001111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01000000,B00110111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B11000000,B00010111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B10000000,B00011001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111001,B10000000,B00001110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte key[] PROGMEM = {16,17,B11111111,B11100000,B10000000,B00100000,B10000000,B00100000,B10000011,B10100000,B10000010,B10100000,B10010111,B10100000,B10101110,B00100000,B10011100,B00100000,B10011000,B00100000,B10000000,B00100000,B11111111,B11100000,B00000000,B00000000,B10000000,B00000000,B10100110,B10100000,B11001100,B11100000,B10100110,B00100000,B00000000,B11000000,};
const byte chest[] PROGMEM = {B00000000,B00000000,B01111110,B10000001,B11111111,B10011001,B10000001,B11111111,};
const byte bedsidebottom[] PROGMEM = {B10000001,B10111101,B10100101,B10111101,B10000001,B11111111,B00000000,B00000000,};
const byte bedsidetop[] PROGMEM = {B00000000,B00000000,B00000000,B11111111,B10000001,B10000001,B10000001,B11111111,};
const byte sox[] PROGMEM = {16,17,B11111111,B11100000,B10000000,B00100000,B10000111,B10100000,B10000100,B10100000,B10000111,B10100000,B10011100,B10100000,B10100000,B10100000,B10100001,B00100000,B10011110,B00100000,B10000000,B00100000,B11111111,B11100000,B00000000,B00000000,B01100000,B00000000,B10000100,B10100000,B00101010,B01000000,B11000100,B10100000,B00000000,B00000000,};
const byte *spritesheet[] = {bush, //0
port_noir, //1
rock_terrain_master, //2
rock_valley_ne, //3
rock_valley_nw, //4
rock_valley_se, //5
rock_valley_sw, //6
turtle_rock, //7
void_tile, //8
water_left_bottom, //9
water_left_middle, //10
water_left_top, //11
water_right_bottom, //12
water_right_middle, //13
water_right_top, //14
water_middle_bottom, //15
water_middle_middle, //16
water_middle_top, //17
rock_s, //18
rock_e, //19
rock_w, //20
rock_n, //21
bush_left, //22
bush_middle, //23
bush_right, //24
tree_base, //25
tree_repeat, //26
tree_top, //27
exit_1, //28
exit_2, //29
exit_3, //30
exit_4, //31
exit_5, //32
exit_6, //33
cave_ladder, //34
ladder, //35
tombstone, //36
WallB, //37
WallBL, //38
WallBR, //39
WallL, //40
WallR, //41
WallT, //42
WallTL, //43
WallTR, //44
blackwall, //45
houseB1, //46
houseB2, //47
houseB3, //48
houseB4, //49
houseB5, //50
houseT1, //51
houseT2, //52
houseT3, //53
houseT4, //54
houseT5, //55
roof1, //56
roof2, //57
roof3, //58
roof4, //59
roof5, //60
wallpaper, //61
bedtop, //62
bedmid, //63
bedbottom, //64
chest, //65
bedsidetop, //66
bedsidebottom}; //67
const byte backblack[] PROGMEM = {8,8,0x7E,0x42,0x42,0x3C,0x7E,0x3C,0x3C,0x24,};
const byte backgrey[] PROGMEM = {8,8,0x1,0x1,0x1,0xC1,0x81,0xC0,0x40,0x0,};
const byte frontblack[] PROGMEM = {8,8,0x7E,0x66,0x42,0x38,0x78,0x38,0x3C,0x24,};
const byte frontgrey[] PROGMEM = {8,8,0x80,0x80,0x80,0x87,0x87,0x7,0x2,0x0,};
const byte leftblack[] PROGMEM = {8,8,0x3E,0x32,0x22,0x1C,0x1C,0x1C,0x1C,0x14,};
const byte leftgrey[] PROGMEM = {8,8,0x0,0x0,0x0,0x60,0x60,0x60,0x40,0x0,};
const byte rightblack[] PROGMEM = {8,8,0x7C,0x4C,0x44,0x38,0x3C,0x38,0x38,0x28,};
const byte rightgrey[] PROGMEM = {8,8,0x2,0x2,0x2,0x2,0x2,0x0,0x0,0x0,};
int player_x = 70; //cant get these to center
int player_y = 40; //cant get these to center
int player_direction = 0;
int room = 1;
int co_ords = 1;
int menu_1 = 1;
int key_1 = 1;
int sox_1 = 1;
int x,y; ///if 0 player spite will not move, -50,50 no tilemap
//////CAMERA//////
int camerax = -20 ;
int cameray = -20 ;
int animTransition;
void setup() {
gb.begin();
gb.titleScreen(F("test"));
gb.setFrameRate(62); ////////for sprite
gb.display.persistence = false;
// animTransition=-6;
}
/////////PLAYER_MOVEMENT\\\\\\\\\
void loop() {
if(gb.update()){
if (gb.buttons.repeat(BTN_RIGHT,1));{x--;}
if (gb.buttons.repeat(BTN_LEFT,1));{x++;}
if (gb.buttons.repeat(BTN_DOWN,1));{y--;}
if (gb.buttons.repeat(BTN_UP,1));{y++;}
// if(player_x > 64 ) {camerax-=2; player_x -=2;} //Y Scrolling right
//else if(player_x < 10 ){camerax+=2; player_x +=2;} //Y Scrolling left
// if(player_y > 28 ) {cameray-=2; player_y -=2;} //Y Scrolling Down
//else if(player_y < 10 ){cameray+=2; player_y +=2;} //Y Scrolling Up
// if(cameray > 0)cameray=0;
//else if(cameray < -24) cameray = -24;
// if(camerax > 0)camerax=0;
//else if(camerax < -36) camerax = -36;
if(player_x > 59 && camerax < 0 && camerax > -52){player_x = 59;camerax--;}
else if(player_x < 15 && camerax < 0 && camerax > -52){player_x = 15;camerax++;}
else if(player_x > 59 && camerax <= 0 && camerax >= -52)camerax--;
else if(player_x < 15 && camerax <= 0 && camerax >= -52)camerax++;
if(player_y > 28 && cameray < 0 && cameray > -40){player_y = 28;cameray--;}
else if(player_y < 15 && cameray < 0 && cameray > -40){player_y = 15;cameray++;}
else if(player_y > 28 && cameray <= 0 && cameray >= -40)cameray--;
else if(player_y < 15 && cameray <= 0 && cameray >= -40)cameray++;
if(camerax > 0)camerax= 0;
else if(camerax < -52) camerax = -52;
if(cameray > 0)cameray= 0;
else if(cameray < -40) cameray = -40;
if(room == 1){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap1,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 2){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap2,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 3){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap3,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 4){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap4,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
if(room == 5){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap5,spritesheet);} // draw the tilemap
// gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );
//if(gb.buttons.repeat(BTN_A,1)){
// gb.display.setColor(BLACK);
// gb.display.fillRect(0,0,84,48);
// gb.display.setColor(WHITE);
// gb.display.fillRect(animTransition,animTransition,84-(2*animTransition),48-(2*animTransition));
// gb.display.setColor(BLACK);
// {animTransition = animTransition + 6;}
// }
// if(gb.buttons.repeat(BTN_B,1)){
// gb.display.setColor(BLACK);
// gb.display.fillRect(0,0,84,48);
// gb.display.setColor(WHITE);
// gb.display.fillRect(animTransition,animTransition,84-(2*animTransition),48-(2*animTransition));
// gb.display.setColor(BLACK);
// {animTransition = animTransition - 6;}
// }
if(gb.buttons.repeat(BTN_UP,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,backblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,backgrey);
}
player_direction = 1;
player_y = player_y - 1;
if(checkcolision())player_y++; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_y <= 0){
player_y = 0;}
if(gb.buttons.repeat(BTN_DOWN,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
player_direction = 2;
player_y = player_y + 1;
if(checkcolision())player_y--; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_y >= 40){
player_y = 40;}
if(gb.buttons.repeat(BTN_RIGHT,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,rightblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,rightgrey);
}
player_direction = 3;
player_x = player_x + 1;
if(checkcolision())player_x--; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_x >= 77){
player_x = 77;}
if(gb.buttons.repeat(BTN_LEFT,1)){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,leftblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,leftgrey);
}
player_direction = 4;
player_x = player_x - 1;
if(checkcolision())player_x++; // ADD by Summoner123 - If have colision on the new position regreat one Pixel
}
if(player_x <= -2){
player_x = -2;}
////////////PLAYER DIRECTION/////////////
if (player_direction == 1){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,backblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,backgrey);
}
}
else if (player_direction == 2){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
}
else if (player_direction == 3){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,rightblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,rightgrey);
}
}
else if (player_direction == 4){
gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,leftblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,leftgrey);
}
}
else { gb.display.setColor(BLACK);{
gb.display.drawBitmap(player_x,player_y,frontblack);
}
gb.display.setColor(GRAY);{
gb.display.drawBitmap(player_x,player_y,frontgrey);
}
}
}
gb.display.setColor(BLACK);
if(gb.buttons.held(BTN_B,20)){
co_ords = co_ords + 1;}
if(co_ords == 0){
gb.display.cursorY = 12; gb.display.println( menu_1 );gb.display.println( menu_1 );}
if(co_ords == 1){
gb.display.cursorY = 12; gb.display.println( player_x );gb.display.println( player_y );}
else if(co_ords == 2){
gb.display.cursorY = 12; gb.display.println( camerax );gb.display.println( cameray );}
else if(co_ords >= 3){
co_ords = 0;}
/////////////////////////////////////TEST MENU OVERLAY///////////////////////////////////////////////
if (gb.buttons.pressed(BTN_C)){
menu_1 = menu_1 + 1;}
if(menu_1 == 3){
gb.display.setColor(BLACK);
gb.display.drawBitmap(0,0,menu1);
gb.display.setColor(WHITE);
gb.display.drawBitmap(0,0,menu2);
gb.display.setColor(BLACK);}
// else if(menu_1 == 1){
// gb.display.cursorY = 12; gb.display.println( camerax );gb.display.println( cameray );}
//if (gb.buttons.pressed(BTN_A)){
// menu_1 = menu_1 + 1;}
else if(menu_1 >= 5){
menu_1 = 1;}
if(menu_1 == 3 && key_1 == 3){
gb.display.drawBitmap(8,8,key);
}
if(menu_1 == 3 && sox_1 == 3){
gb.display.drawBitmap(22,8,sox);
}
//if (gb.buttons.pressed(BTN_C)){
// key_1 = key_1 + 1;}
// else if(key_1 >= 5){
// key_1 = 1;
//}
////////////////////////////END TEST MENY//////////////////////////////////////
}
bool checkcolision() // Transformed it into a function
{
uint16_t i;
for(i=0; i < gb.display.numcolision + 1; i++)
{
if(gb.collideRectRect(player_x,player_y,8,8,gb.display.solid[i].x,gb.display.solid[i].y,8,8))///changed player_x,y back to 8
{
// if(gb.display.solid[i].spritecol == void_tile); //Do nothing because it's floor - This line not needed
if(gb.display.solid[i].spritecol == bush) return true;
else if(gb.display.solid[i].spritecol == port_noir) return true;
else if(gb.display.solid[i].spritecol == rock_terrain_master) {gb.popup(F(" ""Rock"" "),1); return true;} //Return True if character have touched the wall
else if(gb.display.solid[i].spritecol == rock_valley_ne) return true;
else if(gb.display.solid[i].spritecol == rock_valley_nw) return true;
else if(gb.display.solid[i].spritecol == rock_valley_se) return true;
else if(gb.display.solid[i].spritecol == rock_valley_sw) return true;
else if(gb.display.solid[i].spritecol == turtle_rock) return true;
else if(gb.display.solid[i].spritecol == water_left_bottom) return true;
else if(gb.display.solid[i].spritecol == water_left_middle) return true;
else if(gb.display.solid[i].spritecol == water_left_top) return true;
else if(gb.display.solid[i].spritecol == water_right_bottom) return true;
else if(gb.display.solid[i].spritecol == water_right_middle) return true;
else if(gb.display.solid[i].spritecol == water_right_top) return true;
else if(gb.display.solid[i].spritecol == water_middle_bottom) return true;
else if(gb.display.solid[i].spritecol == water_middle_middle) return true;
else if(gb.display.solid[i].spritecol == water_middle_top) return true;
else if(gb.display.solid[i].spritecol == rock_n) return true;
else if(gb.display.solid[i].spritecol == rock_e) return true;
else if(gb.display.solid[i].spritecol == rock_s) return true;
else if(gb.display.solid[i].spritecol == rock_w) return true;
else if(gb.display.solid[i].spritecol == bush_left) return true;
else if(gb.display.solid[i].spritecol == bush_middle) return true;
else if(gb.display.solid[i].spritecol == bush_right) return true;
//else if(gb.display.solid[i].spritecol == bush_left) {gb.popup(F(" ""A bush!!"" "),1); return true;}
//else if(gb.display.solid[i].spritecol == bush_middle) {gb.popup(F(" ""A bush!!"" "),1); return true;}
//else if(gb.display.solid[i].spritecol == bush_right) {gb.popup(F(" ""A bush!!"" "),1); return true;}
else if(gb.display.solid[i].spritecol == tree_base) return true;
else if(gb.display.solid[i].spritecol == tree_repeat) return true;
else if(gb.display.solid[i].spritecol == tree_top) return true;
else if((gb.display.solid[i].spritecol == exit_1) && room == 1) {room = 2; player_x = 68; camerax = -52;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 2) {room = 1; player_x = 68; camerax = -52;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 3) {room = 2; player_y = 9; cameray = 0;}
else if((gb.display.solid[i].spritecol == exit_1) && room == 5) {room = 1; player_y = 27; player_x = 59; camerax = -45; cameray = -21;}
else if((gb.display.solid[i].spritecol == exit_2) && room == 1) {room = 2; player_x = 9; camerax = 0;}
else if((gb.display.solid[i].spritecol == exit_2) && room == 2) {room = 1; player_x = 9; camerax = 0;}
else if((gb.display.solid[i].spritecol == exit_3) && room == 2) {room = 3; player_y = 32; cameray = -40;}
else if(gb.display.solid[i].spritecol == exit_4) return true;
else if(gb.display.solid[i].spritecol == exit_5) return true;
else if(gb.display.solid[i].spritecol == exit_6) return true;
else if((gb.display.solid[i].spritecol == cave_ladder) && room ==3) {room = 4; player_x = 16; player_y = 24; camerax = 0; cameray = -48;}
else if((gb.display.solid[i].spritecol == ladder) && room == 4) {room = 3; player_x = 16; player_y = 24; camerax = 0; cameray = -48;}
else if((gb.display.solid[i].spritecol == tombstone) && gb.buttons.pressed(BTN_A)) {gb.popup(F(" ""Here Lies Dave!"" "),10); return true;}
else if(gb.display.solid[i].spritecol == tombstone) return true;
else if(gb.display.solid[i].spritecol == WallB) return true;
else if(gb.display.solid[i].spritecol == WallBL) return true;
else if(gb.display.solid[i].spritecol == WallBR) return true;
else if(gb.display.solid[i].spritecol == WallT) return true;
else if(gb.display.solid[i].spritecol == WallTL) return true;
else if(gb.display.solid[i].spritecol == WallTR) return true;
else if(gb.display.solid[i].spritecol == WallL) return true;
else if(gb.display.solid[i].spritecol == WallR) return true;
else if(gb.display.solid[i].spritecol == houseB1) return true;
else if(gb.display.solid[i].spritecol == houseB2) return true;
else if((gb.display.solid[i].spritecol == houseB3) && room == 1 && key_1 == 3) {room = 5; player_y = 32; player_x = 40; camerax = -0; cameray = -40;}
else if((gb.display.solid[i].spritecol == houseB3) && room == 1 && key_1 == 1) return true;
else if(gb.display.solid[i].spritecol == houseB4) return true;
else if(gb.display.solid[i].spritecol == houseB5) return true;
else if(gb.display.solid[i].spritecol == houseT1) return true;
else if(gb.display.solid[i].spritecol == houseT2) return true;
else if(gb.display.solid[i].spritecol == houseT3) return true;
else if(gb.display.solid[i].spritecol == houseT4) return true;
else if(gb.display.solid[i].spritecol == houseT5) return true;
else if(gb.display.solid[i].spritecol == roof1) return true;
else if(gb.display.solid[i].spritecol == roof2) return true;
else if(gb.display.solid[i].spritecol == roof3) return true;
else if(gb.display.solid[i].spritecol == roof4) return true;
else if(gb.display.solid[i].spritecol == roof5) return true;
else if((gb.display.solid[i].spritecol == bedtop) && gb.buttons.pressed(BTN_A)) {gb.popup(F(" ""Aaah! My bed"" "),10); return true;}
else if(gb.display.solid[i].spritecol == bedtop) return true;
else if((gb.display.solid[i].spritecol == bedmid) && gb.buttons.pressed(BTN_A)) {gb.popup(F(" ""Aaah! My bed"" "),10); return true;}
else if(gb.display.solid[i].spritecol == bedmid) return true;
else if((gb.display.solid[i].spritecol == bedbottom) && gb.buttons.pressed(BTN_A)) {gb.popup(F(" ""Aaah! My bed"" "),10);}
else if((gb.display.solid[i].spritecol == chest) && room == 1 && gb.buttons.pressed(BTN_A) && key_1 == 1) {gb.popup(F(" ""You got key"" "),10); key_1 = 3; return true;}
else if((gb.display.solid[i].spritecol == chest) && room == 1 && gb.buttons.pressed(BTN_A) && key_1 == 3) {gb.popup(F(" ""It's empty!!"" "),10); return true;}
else if(gb.display.solid[i].spritecol == chest) return true;
else if((gb.display.solid[i].spritecol == bedsidebottom) && room == 5 && gb.buttons.pressed(BTN_A) && sox_1 == 1) {gb.popup(F(" ""You got a sock?"" "),10); sox_1 = 3; return true;}
else if((gb.display.solid[i].spritecol == bedsidebottom) && room == 5 && gb.buttons.pressed(BTN_A) && sox_1 == 3) {gb.popup(F(" ""It's empty!!"" "),10); return true;}
else if(gb.display.solid[i].spritecol == bedsidetop) return true;
else if(gb.display.solid[i].spritecol == bedsidebottom) return true;
}
}
return false; // Return false if don't touch anything
}
int menu_1 = 1;
const byte menu1[] PROGMEM = {88,48,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00001100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B00000000,B00010001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111000,B10000000,B00100110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B01000000,B00101000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B01000000,B01001000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B00100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B11111111,B11110000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B10000000,B00100010,B00000000,B10001000,B00000010,B00100000,B00001000,B10000000,B00010000,B10100000,B01010000,B11111111,B11100011,B11111111,B10001111,B11111110,B00111111,B11111000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10000000,B00010000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11110000,B10100000,B01010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10100000,B01001000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B00100000,B00101000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B01000000,B00100110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B01000000,B00010001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111000,B10000000,B00001100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
const byte menu2[] PROGMEM = {88,48,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00001110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000000,B00011001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111001,B10000000,B00010111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B10000000,B00110111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B11000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B00000000,B00001111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B01111111,B11011101,B11111111,B01110111,B11111101,B11011111,B11110111,B01111111,B11101111,B01000000,B00101111,B00000000,B00011100,B00000000,B01110000,B00000001,B11000000,B00000111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11101111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B00000000,B00001111,B01000000,B00101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01000000,B00110111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B11000000,B00010111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B10000000,B00011001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111001,B10000000,B00001110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000000,B00000011,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,};
if (gb.buttons.pressed(BTN_C)){
menu_1 = menu_1 + 1;}
if(menu_1 == 3){
gb.display.setColor(BLACK);
gb.display.drawBitmap(0,0,menu1);
gb.display.setColor(WHITE);
gb.display.drawBitmap(0,0,menu2);
gb.display.setColor(BLACK);}
else if(menu_1 >= 5){
menu_1 = 1;}
int key_1 = 1;
const byte key[] PROGMEM = {16,17,B11111111,B11100000,B10000000,B00100000,B10000000,B00100000,B10000011,B10100000,B10000010,B10100000,B10010111,B10100000,B10101110,B00100000,B10011100,B00100000,B10011000,B00100000,B10000000,B00100000,B11111111,B11100000,B00000000,B00000000,B10000000,B00000000,B10100110,B10100000,B11001100,B11100000,B10100110,B00100000,B00000000,B11000000,};
if(menu_1 == 3 && key_1 == 3){
gb.display.drawBitmap(8,8,key);
}
else if((gb.display.solid[i].spritecol == chest) && room == 1 && gb.buttons.pressed(BTN_A) && key_1 == 1) {gb.popup(F(" ""You got key"" "),10); key_1 = 3; return true;}
else if((gb.display.solid[i].spritecol == chest) && room == 1 && gb.buttons.pressed(BTN_A) && key_1 == 3) {gb.popup(F(" ""It's empty!!"" "),10); return true;}
else if(gb.display.solid[i].spritecol == chest) return true;
else if((gb.display.solid[i].spritecol == houseB3) && room == 1 && key_1 == 3) {room = 5; player_y = 32; player_x = 40; camerax = -0; cameray = -40;}
else if((gb.display.solid[i].spritecol == houseB3) && room == 1 && key_1 == 1) return true;
Sun Oct 02, 2016 10:11 pm
Tue Oct 11, 2016 7:48 am
if(room == 1){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap1,spritesheet);}
if(room == 2){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap2,spritesheet);}
if(room == 3){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap3,spritesheet);}
if(room == 4){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap4,spritesheet);}
if(room == 5){
gb.display.clear();
gb.display.drawTilemap(camerax,cameray,tilemap5,spritesheet);}