#include "Object.h" #include "SDL.h" #include <string> using namespace std; SDL_Event event; Uint8 * keystates = SDL_GetKeyState(NULL); int main(int argc, char *args[] ){ bool quit = false; bool left = false; Object play1; SDL_Init(SDL_INIT_EVERYTHING); while( quit != true ){ while( SDL_PollEvent (&event)){ if ( event.type == SDL_KEYDOWN){ switch(event.key.keysym.sym){ case SDLK_LEFT: (left = true); break; default: break; } } if ( event.type == SDL_KEYUP){ switch(event.key.keysym.sym){ case SDLK_LEFT: left = false; break; default: break; } } } if (left == true ){ std::cout << "true"; } if (left == false ){ std::cout << "false"; } play1.draw_char(); } return 0; }
My input loop will not keep a variable at a certain value when i implement key up.
I went ahead and tried this as a test loop. If i press left it becomes true for one frame and then resets back to false right away. I have got to be missing something here, because i have implemented this same input structure on previous games without any problems like this.