#include #include #include "graphics.h" PSP_MODULE_INFO("Tileset Sample", 0,1,1); //Init const int screenWidth = 480; const int screenHeight = 272; const int tileWidth = 32; const int tileHeight = 32; int map[15][20] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; int cameraX = 0; int cameraY = 0; int i; int j; void drawTiles(); Image *tileset; int main() { roeLInit(); initGraphics(); tileset = loadImage("tileset.png"); drawTiles(); while(1) { readKeys(); if((Button(RIGHT) == HELD) && (cameraX < 0)) { cameraX += 4; }else if((Button(LEFT) == HELD) && (cameraX > (-32*640) + screenWidth)) { cameraX -= 4; } if((Button(UP) == HELD) && (cameraY < 0)) { cameraY += 4; }else if((Button(LEFT) == HELD) && (cameraY > (-32*480) + screenHeight)) { cameraY -= 4; } if(Button(CROSS) == PRESSED) roeLScreenshot("debug.bmp"), roeLQuit(); //roeLPrintfXY(0,1,"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n", map[0][0], map[0][1], map[0][2], map[0][3], map[0][4], map[0][5], map[0][6], map[0][7], map[0][8], map[0][9], map[0][10], map[0][11], map[0][12], map[0][13], map[0][14], map[0][15], map[0][16], map[0][17], map[0][18], map[0][19], map[1][0], map[1][1], map[1][2], map[1][3], map[1][4], map[1][5], map[1][6], map[1][7], map[1][8], map[1][9], map[1][11], map[1][11], map[1][12], map[1][13], map[1][14], map[1][15], map[1][16], map[1][17], map[1][18], map[1][19], map[2][0], map[2][1], map[2][2], map[2][3], map[2][4], map[2][5], map[2][6], map[2][7], map[2][8], map[2][9], map[2][12], map[2][11], map[2][12], map[2][13], map[2][14], map[2][15], map[2][16], map[2][17], map[2][18], map[2][19], map[3][0], map[3][1], map[3][2], map[3][3], map[3][4], map[3][5], map[3][6], map[3][7], map[3][8], map[3][9], map[3][13], map[3][11], map[3][12], map[3][13], map[3][14], map[3][15], map[3][16], map[3][17], map[3][18], map[3][19], map[4][0], map[4][1], map[4][2], map[4][3], map[4][4], map[4][5], map[4][6], map[4][7], map[4][8], map[4][9], map[4][10], map[4][11], map[4][12], map[4][13], map[4][14], map[4][15], map[4][16], map[4][17], map[4][18], map[4][19], map[5][0], map[5][1], map[5][2], map[5][3], map[5][4], map[5][5], map[5][6], map[5][7], map[5][8], map[5][9], map[5][10], map[5][11], map[5][12], map[5][13], map[5][14], map[5][15], map[5][16], map[5][17], map[5][18], map[5][19], map[6][0], map[6][1], map[6][2], map[6][3], map[6][4], map[6][5], map[6][6], map[6][7], map[6][8], map[6][9], map[6][10], map[6][11], map[6][12], map[6][13], map[6][14], map[6][15], map[6][16], map[6][17], map[6][16], map[6][19], map[7][0], map[7][1], map[7][2], map[7][3], map[7][4], map[7][5], map[7][6], map[7][7], map[7][8], map[7][9], map[7][10], map[7][11], map[7][12], map[7][13], map[7][14], map[7][15], map[7][16], map[7][17], map[7][18], map[7][19], map[8][0], map[0][1], map[8][2], map[8][3], map[8][4], map[8][5], map[8][6], map[8][7], map[8][8], map[8][9], map[8][10], map[8][11], map[8][12], map[8][13], map[8][14], map[8][15], map[8][16], map[8][17], map[8][18], map[8][19], map[9][0], map[9][1], map[9][2], map[9][3], map[9][4], map[9][5], map[9][6], map[9][7], map[9][8], map[9][9], map[9][10], map[9][11], map[9][12], map[9][13], map[9][14], map[9][15], map[9][16], map[9][17], map[9][18], map[9][19], map[10][0], map[10][1], map[10][2], map[10][3], map[10][4], map[10][5], map[10][6], map[10][7], map[10][8], map[10][9], map[10][10], map[10][11], map[10][12], map[10][13], map[10][14], map[10][15], map[10][16], map[10][17], map[10][18], map[10][19], map[11][0], map[11][1], map[11][2], map[11][3], map[11][4], map[11][5], map[11][6], map[11][7], map[11][8], map[11][10], map[11][11], map[11][11], map[11][12], map[11][13], map[11][14], map[11][15], map[11][16], map[11][17], map[11][18], map[11][19], map[12][0], map[12][1], map[12][2], map[12][3], map[12][4], map[12][5], map[12][6], map[12][7], map[12][8], map[12][9], map[12][10], map[12][11], map[12][12], map[12][13], map[12][14], map[12][15], map[12][16], map[12][17], map[12][18], map[12][19], map[13][0], map[13][1], map[13][2], map[13][3], map[13][4], map[13][5], map[13][6], map[13][7], map[13][8], map[13][9], map[13][10], map[13][11], map[13][12], map[13][13], map[13][14], map[13][15], map[13][16], map[13][17], map[13][18], map[13][19], map[14][0], map[14][1], map[14][2], map[14][3], map[14][4], map[14][5], map[14][6], map[14][7], map[14][8], map[14][9], map[14][10], map[14][11], map[14][12], map[14][13], map[14][14], map[14][15], map[14][16], map[14][17], map[14][18], map[14][19]); flipScreen(); } roeLSleepThread(); return 0; } void drawTiles() { for(i = ceil(cameraY/tileHeight); i < ceil(screenHeight/tileHeight); i++) { for(j = ceil(cameraX/tileWidth); j < ceil(screenWidth/tileWidth); j++) { switch(map[i][j]) { case 0: blitAlphaImageToScreen(0,0,32,32, tileset,j*32,i*32); break; case 1: blitAlphaImageToScreen(32,0,32,32, tileset,j*32,i*32); break; default: blitAlphaImageToScreen(0,0,32,32, tileset,j*32,i*32); } } } sceDisplayWaitVblankStart(); flipScreen(); }