#include class Pacman { public: SDL_Point pos {104, 184}; Uint8 anim_frame {0}; int orient {-1}; }; SDL_Renderer* sdlRenderer; SDL_Texture* sdlTexture; SDL_Event sdlEvent; bool should_exit = false; Uint8 bmp[576] { 0x42, 0x4D, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xE0, 0x0F, 0xE7, 0xCF, 0xC0, 0x7F, 0xFF, 0xFF, 0xC0, 0x07, 0xC7, 0xC7, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0x07, 0xC3, 0x87, 0x81, 0xFF, 0x9F, 0xF3, 0x80, 0x1F, 0x83, 0x83, 0x83, 0xFF, 0x8F, 0xE3, 0x80, 0xFF, 0x83, 0x83, 0x87, 0xFF, 0x87, 0xC3, 0x87, 0xFF, 0x81, 0x03, 0x83, 0xFF, 0x83, 0x83, 0x80, 0xFF, 0x81, 0x03, 0x81, 0xFF, 0x81, 0x03, 0x80, 0x1F, 0x80, 0x03, 0xC0, 0xFF, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x7F, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0xE0, 0x3F, 0xE0, 0x0F, 0xE0, 0x0F, 0xE0, 0x0F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF8, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0x73, 0xB9, 0x9D, 0xFF, 0xFF, 0xE7, 0xFF, 0x84, 0x21, 0x91, 0x89, 0xF8, 0x3F, 0xC3, 0xFF, 0x80, 0x01, 0x80, 0x01, 0xE0, 0x0F, 0xC3, 0xFF, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x07, 0xC3, 0xD9, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x07, 0xE7, 0xE6, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x6F, 0xF6, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x03, 0x6F, 0xF6, 0xFF, 0xFF, 0xC0, 0x03, 0x80, 0x03, 0x6F, 0xF6, 0xFF, 0xFF, 0xC0, 0x03, 0x80, 0x03, 0x77, 0xEE, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x07, 0x78, 0x1E, 0xFF, 0xFF, 0xE0, 0x07, 0xC0, 0x07, 0x7F, 0xFE, 0xFF, 0xFF, 0xF0, 0x0F, 0xE0, 0x0F, 0x7F, 0xFE, 0xFF, 0xFF, 0xFC, 0x3F, 0xF8, 0x3F, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x00, 0x00, 0x6F, 0xFF, 0xFF, 0x7F, 0xFE, 0xF7, 0xFE, 0x7F, 0xEF, 0xFF, 0xFF, 0x7F, 0xFE, 0xF7, 0xFE, 0x7F, 0xEF, 0xFF, 0xFF, 0x7F, 0xFE, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x78, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0x77, 0xEE, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF, 0x6F, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF, 0x6F, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x6F, 0x6F, 0xF6, 0xFF, 0xF7, 0xEF, 0xF0, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0xF7, 0xEF, 0xCF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xF7, 0xEF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xEF, 0xF7, 0xB8, 0x00, 0xF8, 0x1F, 0x1D, 0x3F, 0x1F, 0xF8, 0x77, 0xFF, 0xF7, 0xEF, 0xEE, 0xDF, 0xFF, 0xFF, 0x6F, 0xFF, 0xEF, 0xF7, 0xF6, 0xEF, 0xFF, 0xFF, 0x6F, 0xFF, 0xEF, 0xF7, 0xF6, 0xEF, 0xFF, 0xFF, 0x6F, 0xFF, 0xEF, 0xF7, 0xF6, 0xF7, 0xEF, 0xF6, 0xF7, 0xFF, 0xEF, 0xFF, 0xFF, 0xF7, 0xEF, 0xF6, 0xF7, 0xFF, 0xEF, 0xFF, 0xFF, 0xF7, 0xEF, 0xF6, 0xFB, 0xFF, 0xDF, 0xFF, 0xFF, 0xF7, 0xEF, 0xF6, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xF7, 0xEF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xF7, 0xEF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xEF, 0xF6, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xF7, 0xEF, 0xF6, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xC3, 0x6F, 0xFF, 0xF7, 0xEF, 0xF6, 0x6F, 0xFF, 0x81, 0x6F, 0xFF, 0xF7, 0xEF, 0xF6, 0x6F, 0xFF, 0x00, 0x6F, 0xFF, 0xF7, 0xEF, 0xF6, 0x6F, 0xE7, 0x00, 0x77, 0xFF, 0xEF, 0xF7, 0xEE, 0x6F, 0xE7, 0x00, 0xB8, 0x00, 0x1F, 0xF8, 0x1D, 0x6F, 0xFF, 0x00, 0xBF, 0xFF, 0xFF, 0xFF, 0xFD, 0x6F, 0xFF, 0x81, 0xCF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xFF, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0x6F, 0x00, 0x00 }; Uint8 map[868] { 0x41, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x43, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x45, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x46, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x49, 0x46, 0x40, 0x47, 0x3E, 0x3E, 0x48, 0x3F, 0x47, 0x3E, 0x3E, 0x3E, 0x48, 0x3F, 0x47, 0x48, 0x3F, 0x47, 0x3E, 0x3E, 0x3E, 0x48, 0x3F, 0x47, 0x3E, 0x3E, 0x48, 0x40, 0x49, 0x46, 0x3F, 0x4D, 0x4E, 0x4E, 0x4F, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x4D, 0x4F, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x4D, 0x4E, 0x4E, 0x4F, 0x3F, 0x49, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x46, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x49, 0x46, 0x3F, 0x4D, 0x4E, 0x4E, 0x4F, 0x3F, 0x47, 0x48, 0x3F, 0x4D, 0x4E, 0x4E, 0x50, 0x51, 0x4E, 0x4E, 0x4F, 0x3F, 0x47, 0x48, 0x3F, 0x4D, 0x4E, 0x4E, 0x4F, 0x3F, 0x49, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x52, 0x53, 0x53, 0x53, 0x53, 0x4C, 0x3F, 0x47, 0x54, 0x4B, 0x4B, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4B, 0x4B, 0x55, 0x48, 0x3F, 0x4A, 0x53, 0x53, 0x53, 0x53, 0x56, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x51, 0x4E, 0x4E, 0x4F, 0x3E, 0x4D, 0x4F, 0x3E, 0x4D, 0x4E, 0x4E, 0x50, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x48, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x47, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x48, 0x3E, 0x57, 0x53, 0x58, 0x3E, 0x3E, 0x59, 0x53, 0x5A, 0x3E, 0x47, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x4F, 0x3F, 0x4D, 0x4F, 0x3E, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3E, 0x4D, 0x4F, 0x3F, 0x4D, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3F, 0x3E, 0x3E, 0x3E, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3E, 0x3E, 0x3E, 0x3F, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x53, 0x53, 0x53, 0x53, 0x53, 0x4C, 0x3F, 0x4A, 0x4C, 0x3E, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3E, 0x4A, 0x4C, 0x3F, 0x4A, 0x53, 0x53, 0x53, 0x53, 0x53, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x48, 0x3E, 0x5B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x5C, 0x3E, 0x47, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x48, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x47, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x46, 0x3F, 0x47, 0x48, 0x3E, 0x4A, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x3E, 0x47, 0x48, 0x3F, 0x49, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x41, 0x42, 0x42, 0x42, 0x42, 0x4F, 0x3F, 0x4D, 0x4F, 0x3E, 0x4D, 0x4E, 0x4E, 0x50, 0x51, 0x4E, 0x4E, 0x4F, 0x3E, 0x4D, 0x4F, 0x3F, 0x4D, 0x42, 0x42, 0x42, 0x42, 0x45, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x46, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4C, 0x3F, 0x49, 0x46, 0x3F, 0x4D, 0x4E, 0x50, 0x48, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x4D, 0x4F, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x47, 0x51, 0x4E, 0x4F, 0x3F, 0x49, 0x46, 0x40, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3E, 0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x40, 0x49, 0x5D, 0x4B, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4C, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x4A, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4B, 0x5E, 0x5F, 0x4E, 0x4F, 0x3F, 0x4D, 0x4F, 0x3F, 0x47, 0x48, 0x3F, 0x4D, 0x4E, 0x4E, 0x50, 0x51, 0x4E, 0x4E, 0x4F, 0x3F, 0x47, 0x48, 0x3F, 0x4D, 0x4F, 0x3F, 0x4D, 0x4E, 0x60, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x47, 0x48, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x46, 0x3F, 0x4A, 0x4B, 0x4B, 0x4B, 0x4B, 0x55, 0x54, 0x4B, 0x4B, 0x4C, 0x3F, 0x47, 0x48, 0x3F, 0x4A, 0x4B, 0x4B, 0x55, 0x54, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x3F, 0x49, 0x46, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x4D, 0x4F, 0x3F, 0x4D, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x3F, 0x49, 0x46, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x49, 0x52, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x56 }; //"ABBBBBBBBBBBBCDBBBBBBBBBBBBEF????????????GH????????????IF?JKKL?JKKKL?GH?JKKKL?JKKL?IF@G>>H?G>>>H?GH?G>>>H?G>>H@IF?MNNO?MNNNO?MO?MNNNO?MNNO?IF??????????????????????????IF?JKKL?JL?JKKKKKKL?JL?JKKL?IF?MNNO?GH?MNNPQNNO?GH?MNNO?IF??????GH????GH????GH??????IRSSSSL?GTKKL?GH?JKKUH?JSSSSV>>>>>F?GQNNO>MO>MNNPH?I>>>>>>>>>>F?GH>>>>>>>>>>GH?I>>>>>>>>>>F?GH>WSX>>YSZ>GH?I>>>>>BBBBBO?MO>I>>>>>>F>MO?MBBBBB>>>>>>?>>>I>>>>>>F>>>?>>>>>>SSSSSL?JL>I>>>>>>F>JL?JSSSSS>>>>>F?GH>[BBBBBB\>GH?I>>>>>>>>>>F?GH>>>>>>>>>>GH?I>>>>>>>>>>F?GH>JKKKKKKL>GH?I>>>>>ABBBBO?MO>MNNPQNNO>MO?MBBBBEF????????????GH????????????IF?JKKL?JKKKL?GH?JKKKL?JKKL?IF?MNPH?MNNNO?MO?MNNNO?GQNO?IF@??GH???????>>???????GH??@I]KL?GH?JL?JKKKKKKL?JL?GH?JK^_NO?MO?GH?MNNPQNNO?GH?MO?MN`F??????GH????GH????GH??????IF?JKKKKUTKKL?GH?JKKUTKKKKL?IF?MNNNNNNNNO?MO?MNNNNNNNNO?IF??????????????????????????IRSSSSSSSSSSSSSSSSSSSSSSSSSSV" }; Uint8 pac_anims[2][4] { {11, 14, 12, 14}, {11, 15, 13, 15} }; Pacman pacman; int main(int argc, char* argv[]) { SDL_Init(SDL_INIT_EVERYTHING); SDL_Window* sdlWindow = SDL_CreateWindow("PACMAN", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 448, 576, SDL_WINDOW_SHOWN); sdlRenderer = SDL_CreateRenderer(sdlWindow, -1, SDL_RENDERER_PRESENTVSYNC); SDL_RenderSetLogicalSize(sdlRenderer, 224, 288); sdlTexture = SDL_CreateTextureFromSurface(sdlRenderer, SDL_LoadBMP_RW(SDL_RWFromMem(bmp, 576), 1)); while(!should_exit) { while(SDL_PollEvent(&sdlEvent)) { if (sdlEvent.type == SDL_QUIT) { should_exit = true; break; } } const Uint8* keys = SDL_GetKeyboardState(NULL); int want_orient = -1; if (keys[SDL_SCANCODE_RIGHT]) want_orient = 0; if (keys[SDL_SCANCODE_DOWN]) want_orient = 1; if (keys[SDL_SCANCODE_LEFT]) want_orient = 2; if (keys[SDL_SCANCODE_UP]) want_orient = 3; if (pacman.orient > -1) pacman.anim_frame++; if (pacman.anim_frame == 8 || pacman.anim_frame == 0) { pacman.anim_frame = 0; switch (want_orient) { case 0: if (map[((pacman.pos.x+8)/8)+((pacman.pos.y)/8)*28] < 65) pacman.orient = want_orient; break; case 1: if (map[((pacman.pos.x)/8)+((pacman.pos.y+8)/8)*28] < 65) pacman.orient = want_orient; break; case 2: if (map[((pacman.pos.x-1)/8)+((pacman.pos.y)/8)*28] < 65) pacman.orient = want_orient; break; case 3: if (map[((pacman.pos.x)/8)+((pacman.pos.y-1)/8)*28] < 65) pacman.orient = want_orient; break; } if (pacman.orient != want_orient) { switch (pacman.orient) { case 0: if (map[((pacman.pos.x+8)/8)+((pacman.pos.y)/8)*28] >= 65) pacman.orient = -1; break; case 1: if (map[((pacman.pos.x)/8)+((pacman.pos.y+8)/8)*28] >= 65) pacman.orient = -1; break; case 2: if (map[((pacman.pos.x-1)/8)+((pacman.pos.y)/8)*28] >= 65) pacman.orient = -1; break; case 3: if (map[((pacman.pos.x)/8)+((pacman.pos.y-1)/8)*28] >= 65) pacman.orient = -1; break; } } } switch (pacman.orient) { case 0: pacman.pos.x++; break; case 1: pacman.pos.y++; break; case 2: pacman.pos.x--; break; case 3: pacman.pos.y--; break; } map[((pacman.pos.x)/8)+((pacman.pos.y)/8)*28] = 62; SDL_SetRenderDrawColor(sdlRenderer, 0, 0, 0, 255); SDL_RenderClear(sdlRenderer); int x=0, y=24; for (int i=0; i<868; i++) { if (map[i] > 62) { SDL_Rect src { 8*((map[i]-63)%8), 8*((map[i]-63)/8), 8, 8 }, dst { x, y, 8, 8 }; if (map[i]>64) { SDL_SetTextureColorMod(sdlTexture, 33, 33, 222); } else { SDL_SetTextureColorMod(sdlTexture, 255, 184, 151); } SDL_RenderCopy(sdlRenderer, sdlTexture, &src, &dst); } x+=8; if (x==224) { x=0; y+=8; } } int orient = pacman.orient == -1 ? 0 : pacman.orient; SDL_Rect src { 16*(pac_anims[orient%2][pacman.anim_frame/2]%4), 16*(pac_anims[orient%2][pacman.anim_frame/2]/4), 16, 16 }, dst { pacman.pos.x-4, pacman.pos.y+20, 16, 16 }; SDL_SetTextureColorMod(sdlTexture, 255, 255, 0); SDL_RenderCopyEx(sdlRenderer, sdlTexture, &src, &dst, 0, NULL, pacman.orient == 2 ? SDL_FLIP_HORIZONTAL : pacman.orient == 3 ? SDL_FLIP_VERTICAL : SDL_FLIP_NONE ); SDL_RenderPresent(sdlRenderer); } SDL_Quit(); return 0; }