#include #include "handler.h" #define SCREEN_WIDTH 480 #define SCREEN_HEIGHT 272 #define MAP_WIDTH 30 #define MAP_HEIGHT 18 #define TILE_SIZE 32 PSP_MODULE_INFO("Scrolling Tile Engine",0,1,1); PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU); int x,y; //unsigned int MAP_WIDTH, MAP_HEIGHT; //char **map; // put the map data in this int map[MAP_WIDTH][MAP_HEIGHT]; OSL_IMAGE* tileSet; /*typedef struct { int walkable; int tileset; } tile; */ void loadMap(char mapName[200], char tileset[200]) { //Load the files oslSetTransparentColor(RGB(0,255,255)); tileSet = oslLoadImageFile(tileset, OSL_IN_RAM, OSL_PF_5551);//background oslDisableTransparentColor(); oslAssert(tileSet); int level = fopen(mapName,"rb"); oslAssert(level); fseek(level, 0, SEEK_SET); for (y=0;y 0 - TILE_SIZE) && ((x*TILE_SIZE)+xmov < SCREEN_WIDTH + TILE_SIZE)) && //(((y*TILE_SIZE)+ymov > 0 - TILE_SIZE) && ((y*TILE_SIZE)+ymov < SCREEN_HEIGHT + TILE_SIZE))) { switch(map[x][y]) { case 0: oslCreateImageTileSize(tileSet, 0, 0, TILE_SIZE, TILE_SIZE); oslDrawImageXY(tileSet, (x*TILE_SIZE)+xmov, (y*TILE_SIZE)+ymov); break; case 1: oslCreateImageTileSize(tileSet, 32, 0, TILE_SIZE, TILE_SIZE); oslDrawImageXY(tileSet, (x*TILE_SIZE)+xmov, (y*TILE_SIZE)+ymov); break; case 2: oslCreateImageTileSize(tileSet, 64, 0, TILE_SIZE, TILE_SIZE); oslDrawImageXY(tileSet, (x*TILE_SIZE)+xmov, (y*TILE_SIZE)+ymov); break; case 3: oslCreateImageTileSize(tileSet, 96, 0, TILE_SIZE, TILE_SIZE); oslDrawImageXY(tileSet, (x*TILE_SIZE)+xmov, (y*TILE_SIZE)+ymov); break; default: oslCreateImageTileSize(tileSet, 32, 0, TILE_SIZE, TILE_SIZE); oslDrawImageXY(tileSet, (x*TILE_SIZE)+xmov, (y*TILE_SIZE)+ymov); } //} } } if((osl_keys->held.left) && (xmov < 0)) { xmov += 4; }else if((osl_keys->held.right) && (xmov > (-TILE_SIZE*MAP_WIDTH) + SCREEN_WIDTH)) { xmov -= 4; } if((osl_keys->held.up) && (ymov < 0)) { ymov += 4; }else if((osl_keys->held.down) && (ymov > (-TILE_SIZE*MAP_HEIGHT) + SCREEN_HEIGHT)) { ymov -= 4; } if(osl_keys->pressed.triangle) { snprintf(image_save, BUFFER_SIZE, "ms0:/PICTURE/Snapshot_%d.png", to_save); saveImage(image_save, getVramDisplayBuffer(), 480, 272, 512, 0); to_save++; } oslEndDrawing(); oslSyncFrame(); } oslEndGfx(); oslQuit(); return 0; }