main.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #include <tice.h>
  2. #include <graphx.h>
  3. #include <keypadc.h>
  4. #include <debug.h>
  5. #include "gfx/main_gfx.h"
  6. #include "lib/vector.h"
  7. #include "object.h"
  8. float scale = 3.0;
  9. int frameskip = 10;
  10. int max_width = LCD_WIDTH;
  11. int max_height = LCD_HEIGHT;
  12. kb_key_t arrows;
  13. int frame = 0;
  14. Object* player;
  15. void log(char* msg){
  16. dbg_sprintf(dbgout, "[TBP] %s\n", msg);
  17. }
  18. int main(void){
  19. log("New Object");
  20. player = new_Object(0, 0);
  21. log("Get max sizes");
  22. if(bm3->height > bm5->height){
  23. max_height -= bm3->height * scale;
  24. }else{
  25. max_height -= bm5->height * scale;
  26. }
  27. if(bm11->width > bm13->width){
  28. max_width -= bm11->width * scale;
  29. }else{
  30. max_width -= bm13->width * scale;
  31. }
  32. log("Set scale");
  33. player->scale.x = scale;
  34. player->scale.y = scale;
  35. log("Start graphics");
  36. gfx_Begin();
  37. gfx_SetPalette(main_palette, sizeof_main_palette, 0);
  38. gfx_SetDrawBuffer();
  39. log("Main loop");
  40. do{
  41. player->sprite = bm1;
  42. kb_Scan();
  43. arrows = kb_Data[7];
  44. if(arrows & kb_Down){
  45. if(player->y < max_height){
  46. player->y++;
  47. if(frame > 2){
  48. player->sprite = bm3;
  49. }else{
  50. player->sprite = bm5;
  51. }
  52. }
  53. }else if(arrows & kb_Up){
  54. if(player->y > 0){
  55. player->y--;
  56. if(frame > 2){
  57. player->sprite = bm19;
  58. }else{
  59. player->sprite = bm21;
  60. }
  61. }
  62. }
  63. if(arrows & kb_Right){
  64. if(player->x < max_width){
  65. player->x++;
  66. if(frame > 2){
  67. player->sprite = bm11;
  68. }else{
  69. player->sprite = bm13;
  70. }
  71. }
  72. }else if(arrows & kb_Left){
  73. if(player->x > 0){
  74. player->x--;
  75. if(frame > 2){
  76. player->sprite = bm7;
  77. }else{
  78. player->sprite = bm9;
  79. }
  80. }
  81. }
  82. gfx_FillScreen(0);
  83. player->draw(player);
  84. gfx_BlitBuffer();
  85. frame++;
  86. if(frame > frameskip){
  87. frame = 0;
  88. }
  89. }while (! (kb_Data[6] & kb_Clear));
  90. player->free(player);
  91. gfx_End();
  92. return 0;
  93. }