#include #include #include #include #include "gfx/main_gfx.h" #include "lib/vector.h" #include "object.h" float scale = 3.0; int frameskip = 10; int max_width = LCD_WIDTH; int max_height = LCD_HEIGHT; kb_key_t arrows; int frame = 0; Object* player; void log(char* msg){ dbg_sprintf(dbgout, "[TBP] %s\n", msg); } int main(void){ log("New Object"); player = new_Object(0, 0); log("Get max sizes"); if(bm3->height > bm5->height){ max_height -= bm3->height * scale; }else{ max_height -= bm5->height * scale; } if(bm11->width > bm13->width){ max_width -= bm11->width * scale; }else{ max_width -= bm13->width * scale; } log("Set scale"); player->scale.x = scale; player->scale.y = scale; log("Start graphics"); gfx_Begin(); gfx_SetPalette(main_palette, sizeof_main_palette, 0); gfx_SetDrawBuffer(); log("Main loop"); do{ player->sprite = bm1; kb_Scan(); arrows = kb_Data[7]; if(arrows & kb_Down){ if(player->y < max_height){ player->y++; if(frame > 2){ player->sprite = bm3; }else{ player->sprite = bm5; } } }else if(arrows & kb_Up){ if(player->y > 0){ player->y--; if(frame > 2){ player->sprite = bm19; }else{ player->sprite = bm21; } } } if(arrows & kb_Right){ if(player->x < max_width){ player->x++; if(frame > 2){ player->sprite = bm11; }else{ player->sprite = bm13; } } }else if(arrows & kb_Left){ if(player->x > 0){ player->x--; if(frame > 2){ player->sprite = bm7; }else{ player->sprite = bm9; } } } gfx_FillScreen(0); player->draw(player); gfx_BlitBuffer(); frame++; if(frame > frameskip){ frame = 0; } }while (! (kb_Data[6] & kb_Clear)); player->free(player); gfx_End(); return 0; }