Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
int main(int argc, char ** argv){ // variables bool quit = false; SDL_Event event; int x = 288; int y = 208; // init SDL SDL_Init(SDL_INIT_VIDEO); SDL_Window * window = SDL_CreateWindow("SDL2 Keyboard/Mouse events", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0); SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0); SDL_Surface * image = SDL_LoadBMP("spaceship.bmp"); SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, image); SDL_FreeSurface(image); SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); // handle events while (!quit) { SDL_Delay(20); SDL_PollEvent(&event); switch (event.type) { case SDL_QUIT: quit = true; break; case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_LEFT: x--; break; case SDLK_RIGHT: x++; break; case SDLK_UP: y--; break; case SDLK_DOWN: y++; break; case SDLK_q: quit=true; } break; case SDL_MOUSEBUTTONDOWN: switch (event.button.button) { case SDL_BUTTON_LEFT: SDL_ShowSimpleMessageBox(0, "Mouse", "Left button was pressed!", window); break; case SDL_BUTTON_RIGHT: SDL_ShowSimpleMessageBox(0, "Mouse", "Right button was pressed!", window); break; default: SDL_ShowSimpleMessageBox(0, "Mouse", "Some other button was pressed!", window); break; } break; case SDL_MOUSEMOTION: int mouseX = event.motion.x; int mouseY = event.motion.y; std::stringstream ss; ss << "X: " << mouseX << " Y: " << mouseY; SDL_SetWindowTitle(window, ss.str().c_str()); break; } SDL_Rect dstrect = { x, y, 64, 64 }; SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, &dstrect); SDL_RenderPresent(renderer); } // cleanup SDL SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)