From 4b7946d046bee9f15516b02ce1de17956e3d8aa9 Mon Sep 17 00:00:00 2001 From: Logen Kain Date: Sat, 12 Nov 2016 19:30:15 -0700 Subject: [PATCH] whatever: Added 6 degreess of movement --- sdl/whatever/.gitignore | 1 + sdl/whatever/references | 1 + sdl/whatever/whatever | Bin 15400 -> 0 bytes sdl/whatever/whatever.c | 96 ++++++++++++++++++++++++++++------------ 4 files changed, 69 insertions(+), 29 deletions(-) create mode 100644 sdl/whatever/.gitignore delete mode 100755 sdl/whatever/whatever diff --git a/sdl/whatever/.gitignore b/sdl/whatever/.gitignore new file mode 100644 index 0000000..982793c --- /dev/null +++ b/sdl/whatever/.gitignore @@ -0,0 +1 @@ +whatever diff --git a/sdl/whatever/references b/sdl/whatever/references index 1b29c38..83eeea5 100644 --- a/sdl/whatever/references +++ b/sdl/whatever/references @@ -2,3 +2,4 @@ http://www.xeekworx.com/sdl2guides/11-sdl2guides-02 https://wiki.libsdl.org/CategoryAPI https://wiki.libsdl.org/MigrationGuide http://www.willusher.io/sdl2%20tutorials/2013/08/17/lesson-2-dont-put-everything-in-main +http://lazyfoo.net/tutorials/SDL/18_key_states/index.php diff --git a/sdl/whatever/whatever b/sdl/whatever/whatever deleted file mode 100755 index 9c25478d47d6f22cdaa169884a615c2458cb7cff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15400 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 //Write a function that moves an image based on which arrow keys are pressed. //something like +//functionize, everything //void move_image(direction, image); @@ -26,11 +27,12 @@ int main ( int argc, char *argv[] ) SDL_Surface* background_surface; SDL_Texture* background_texture; SDL_Rect top_image_dest = { 0 }; - SDL_Event event = { 0 }; + /*Event handler */ + SDL_Event e; int screen_width = 1024, screen_height = 768; int top_image_width = 0, top_image_height = 0; - + int movement_speed = 1; /* create window of size 640x480 and set title bar*/ @@ -81,13 +83,20 @@ int main ( int argc, char *argv[] ) top_image = SDL_CreateTextureFromSurface(renderer, temp); SDL_FreeSurface(temp); temp = NULL; - /* Get height and width of top_image */ - SDL_QueryTexture(top_image, NULL, NULL, &top_image_width, &top_image_height); if(top_image == NULL) { printf("Failed to create texture from top_image: %s\n", SDL_GetError()); return 1; } + + /* Get height and width of top_image */ + SDL_QueryTexture(top_image, NULL, NULL, &top_image_width, &top_image_height); + + /* Prepare top_image for inital position */ + top_image_dest.x = (screen_width / 2) - (top_image_width / 2); + top_image_dest.y = (screen_width / 2) - (top_image_height / 2); + top_image_dest.w = top_image_width; + top_image_dest.h = top_image_height; } int gameover = 0; @@ -96,38 +105,67 @@ int main ( int argc, char *argv[] ) while (!gameover) { /* look for an event */ - if (SDL_PollEvent(&event)) { +// if (SDL_PollEvent(&event)) { /* an event was found */ - switch (event.type) { +// switch (event.type) { /* close button clicked */ - case SDL_QUIT: - gameover = 1; - break; +// case SDL_QUIT: + // gameover = 1; +// break; + +// switch (event.key.keysym.sym) { +// case SDLK_ESCAPE: +// case SDLK_q: +// gameover = 1; +// break; +// case SDLK_w: +// printf("You just pressed 'w'\n"); +// break; + +// case SDLK_DOWN: +// top_image_dest.y += movement_speed; +// break; */ + /*Try handling the key_events differently */ + + /*handle events on queue */ + while ( SDL_PollEvent( &e ) != 0) + { + if (e.type == SDL_QUIT) + { + gameover = 1; + } + + } + + const Uint8* currentKeyStates = SDL_GetKeyboardState( NULL ); + if (currentKeyStates[ SDL_SCANCODE_ESCAPE ] || + currentKeyStates[ SDL_SCANCODE_Q ] ) + { + gameover = 1; + } + + if (currentKeyStates[ SDL_SCANCODE_LEFT ] ) + { + top_image_dest.x -= movement_speed; + } + if (currentKeyStates[ SDL_SCANCODE_RIGHT ] ) + { + top_image_dest.x += movement_speed; + } + if (currentKeyStates[ SDL_SCANCODE_UP ] ) + { + top_image_dest.y -= movement_speed; + } + if (currentKeyStates[ SDL_SCANCODE_DOWN ] ) + { + top_image_dest.y += movement_speed; + } - /* handle the keyboard */ - case SDL_KEYDOWN: - switch (event.key.keysym.sym) { - case SDLK_ESCAPE: - case SDLK_q: - gameover = 1; - break; - case SDLK_w: - printf("You just pressed 'w'\n"); - break; - } - break; - } - } - /* render the background */ SDL_RenderCopy(renderer, background_texture, NULL, NULL); /* Render entire top_image to center of screen */ - top_image_dest.x = (screen_width / 2) - (top_image_width / 2); - top_image_dest.y = (screen_width / 2) - (top_image_height / 2); - top_image_dest.w = top_image_width; - top_image_dest.h = top_image_height; SDL_RenderCopy(renderer, top_image, NULL, &top_image_dest); /* Render here */