From ac8271b702e3d82ffa808c0d1358b56fd8cad86d Mon Sep 17 00:00:00 2001 From: "pavel.glushkov" Date: Sun, 21 Aug 2016 03:29:40 +0300 Subject: [PATCH] end with player refactoring, issue with graphic restrictions --- .gitignore | 3 +- test.c | 55 +++++++++-------- test.gb | Bin 32768 -> 32768 bytes tiledata.h | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 196 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 600d2d3..6d0ee45 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.vscode \ No newline at end of file +.vscode +.DS_Store \ No newline at end of file diff --git a/test.c b/test.c index cdb8d11..309d2dd 100644 --- a/test.c +++ b/test.c @@ -23,11 +23,11 @@ void initGso(GameSpriteObject *gso) { lastFreeTileValue = *(gso->lastFreeTilePointer); tileSum = gso->width * gso->height; - set_sprite_data(lastFreeTileValue, tileSum, gb_tile_data/*gso->tileDataPointer*/); + set_sprite_data(lastFreeTileValue, tileSum, gso->tileDataPointer); // Refresh lastFreeTile value - *(gso->lastFreeTilePointer) = lastFreeTileValue + tileSum; // replace += + *(gso->lastFreeTilePointer) += tileSum; // Link tiles and sprites - for (i = 0; i < tileSum; i++) { + for (i = lastFreeTileValue; i < lastFreeTileValue + tileSum; i++) { set_sprite_tile(i, i); } } @@ -37,8 +37,9 @@ void newGso(GameSpriteObject *gsoPointer, UINT8 height, UINT8 *tileDataPointer, UINT8 *lastFreeTilePointer) { - // Without this line height === 0 ¯\_(ツ)_/¯ + // Without this lines some params === 0 ¯\_(ツ)_/¯ gsoPointer->height; + gsoPointer->tileDataPointer; gsoPointer->width = width; gsoPointer->height = height; @@ -49,27 +50,18 @@ void newGso(GameSpriteObject *gsoPointer, initGso(gsoPointer); } -void shift_sprite(UBYTE x, UBYTE y) -{ - UBYTE i, j, c = 0; +// Work correctly with 8*8 sprites +void moveGso(GameSpriteObject *gso, UINT8 x, UINT8 y) { + UBYTE i, j, c; + c = gso->firstTileNum; - for (i = 0; i < 3; ++i) { - for (j = 0; j < 3; ++j) { + for (i = 0; i < gso->height; ++i) { + for (j = 0; j < gso->width; ++j) { move_sprite(c++, x + 8 * j, y + 8 * i); } } } -void init_sprite(unsigned char *tile_data) -{ - UBYTE i; - set_sprite_data(0, 9, tile_data); - - for (i = 0; i < 9; ++i) { - set_sprite_tile(i, i); - } -} - void main() { const JUMP_DELAY = 15; @@ -89,18 +81,29 @@ void main() UINT8 lastFreeTile = 0; - UINT8 playerWidth = 3; - UINT8 playerHeight = 3; - UINT8 *playerTileDataPointer = &gb_tile_data; + UINT8 playerWidth = flbird_tile_map_width; + UINT8 playerHeight = flbird_tile_map_height; + UINT8 *playerTileDataPointer = &flbird_tile_data; GameSpriteObject player; + GameSpriteObject pipeBottom; + GameSpriteObject pipeBody; + newGso(&player, playerWidth, playerHeight, playerTileDataPointer, &lastFreeTile); + newGso(&pipeBottom, fltopbottom_tile_map_width, fltopbottom_tile_map_height, fltopbottom_tile_data, &lastFreeTile); + moveGso(&pipeBottom, 70, 56); + + // Sprite graphic have a restriction: only 40 tiles on screen. + // Defenitely need to use background layer + // set_bkg_data(0, flbody_tile_count, flbody_tile_data); + // set_bkg_tiles() + SPRITES_8x8; SHOW_BKG; SHOW_SPRITES; DISPLAY_ON; - + while(resume) { j = joypad(); if (j & J_A && !delay) { @@ -111,9 +114,9 @@ void main() } if (j & J_RIGHT) - x++; + x+=3; if (j & J_LEFT) - x--; + x-=3; if (clock() > delaying) delay = FALSE; t = clock() - time_backup; @@ -124,7 +127,7 @@ void main() y = yd + vcoord; y = gh - y; - shift_sprite(x, y); + moveGso(&player, x, y); if (y < 10 || y > GRAPHICS_HEIGHT) { resume = 0; printf("FAGGOT"); diff --git a/test.gb b/test.gb index 8fcb82493e43d9a53e6869ebc4ea6374f45b2a6f..acb75487b3413274fcf0e091ffafa038e07c29ab 100644 GIT binary patch delta 4459 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 delta 3768 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 X4c0!OqK(yOyXs!re)f3XdiDPSpR?=n diff --git a/tiledata.h b/tiledata.h index 1e8c6d5..e165713 100644 --- a/tiledata.h +++ b/tiledata.h @@ -18,12 +18,12 @@ // // // // ///////////////// -const int gb_tile_map_size = 0x09; -const int gb_tile_map_width = 0x03; -const int gb_tile_map_height = 0x03; +const int flbird_tile_map_size = 0x09; +const int flbird_tile_map_width = 0x03; +const int flbird_tile_map_height = 0x03; -const int gb_tile_data_size = 0x90; -const int gb_tile_count = 0x09; +const int flbird_tile_data_size = 0x90; +const int flbird_tile_count = 0x09; // //////////////// // // // @@ -31,7 +31,7 @@ const int gb_tile_count = 0x09; // // // // //////////////// -const unsigned char gb_map_data[] = { +const unsigned char flbird_map_data[] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 }; @@ -41,7 +41,7 @@ const unsigned char gb_map_data[] = { // // // // ///////////////// -const unsigned char gb_tile_data[] = { +const unsigned char flbird_tile_data[] = { 0x00,0x00,0x02,0x00,0x03,0x03,0x0C,0x00,0x0C,0x04,0x7F,0x3E,0xFF,0x00,0xC1,0x81, 0xFF,0x7F,0xFF,0x04,0x84,0x04,0x1C,0x00,0x18,0x08,0x18,0x08,0x98,0x08,0x98,0x08, 0x80,0x80,0xC0,0x00,0x60,0x40,0x30,0x00,0x30,0x00,0x68,0x48,0x6C,0x48,0x68,0x48, @@ -51,4 +51,161 @@ const unsigned char gb_tile_data[] = { 0x0F,0x06,0x0F,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFF,0x03,0xFF,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; - \ No newline at end of file + +// /////////////////////// +// // // +// // File Attributes // +// // // +// /////////////////////// + +// Filename: flbody.png +// Pixel Width: 40px +// Pixel Height: 8px + +// ///////////////// +// // // +// // Constants // +// // // +// ///////////////// + +const int flbody_tile_map_size = 0x05; +const int flbody_tile_map_width = 0x05; +const int flbody_tile_map_height = 0x01; + +const int flbody_tile_data_size = 0x50; +const int flbody_tile_count = 0x05; + +// //////////////// +// // // +// // Map Data // +// // // +// //////////////// + +const unsigned char flbody_map_data[] ={ + 0x00,0x01,0x02,0x03,0x04 +}; + +// ///////////////// +// // // +// // Tile Data // +// // // +// ///////////////// + +const unsigned char flbody_tile_data[] ={ + 0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, + 0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E}; + +// /////////////////////// +// // // +// // File Attributes // +// // // +// /////////////////////// + +// Filename: fltopbottom.png +// Pixel Width: 40px +// Pixel Height: 24px + +// ///////////////// +// // // +// // Constants // +// // // +// ///////////////// + +const int fltopbottom_tile_map_size = 0x0F; +const int fltopbottom_tile_map_width = 0x05; +const int fltopbottom_tile_map_height = 0x03; + +const int fltopbottom_tile_data_size = 0xF0; +const int fltopbottom_tile_count = 0x0F; + +// //////////////// +// // // +// // Map Data // +// // // +// //////////////// + +const unsigned char fltopbottom_map_data[] ={ + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E +}; + +// ///////////////// +// // // +// // Tile Data // +// // // +// ///////////////// + +const unsigned char fltopbottom_tile_data[] ={ + 0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0xE3,0x70,0xFF,0xFF,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0xFF,0xFF,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xC0,0xC0,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80, + 0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xB3,0x4F,0xD3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F, + 0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0x80,0xC0,0xD0,0xE0,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0xFF,0xFF, + 0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0x4B,0x07,0x03,0x07,0x17,0x0F,0xFF,0xFF}; + +// /////////////////////// +// // // +// // File Attributes // +// // // +// /////////////////////// + +// Filename: flbottomtop.png +// Pixel Width: 40px +// Pixel Height: 24px + +// ///////////////// +// // // +// // Constants // +// // // +// ///////////////// + +const int flbottomtop_tile_map_size = 0x0F; +const int flbottomtop_tile_map_width = 0x05; +const int flbottomtop_tile_map_height = 0x03; + +const int flbottomtop_tile_data_size = 0xF0; +const int flbottomtop_tile_count = 0x0F; + +// //////////////// +// // // +// // Map Data // +// // // +// //////////////// + +const unsigned char flbottomtop_map_data[] ={ + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E +}; + +// ///////////////// +// // // +// // Tile Data // +// // // +// ///////////////// + +const unsigned char flbottomtop_tile_data[] ={ + 0xFF,0xFF,0xD0,0xE0,0x80,0xC0,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80, + 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0x17,0x0F,0x03,0x07,0x4B,0x07,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F, + 0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0xC0, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00, + 0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xD3,0x0F,0xB3,0x4F, + 0xFF,0xFF,0xFF,0xFF,0xE3,0x70,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20, + 0xFF,0xFF,0xFF,0xFF,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, + 0xFF,0xFF,0xFF,0xFF,0xBE,0xFF,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E};