#include #include "SDL2/SDL.h" int main(int argc, char** argv){ // SDL initialisieren: if (SDL_Init(SDL_INIT_EVERYTHING) != 0){ printf("Fehler: %s \n", SDL_GetError()); return 1; } // Fenster öffnen: SDL_Window *fenster = SDL_CreateWindow("Hallo Welt!", 250, 300, 640, 480, SDL_WINDOW_SHOWN); // Renderer erstellen: SDL_Renderer *renderer = SDL_CreateRenderer(fenster, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); // Zeichenfarbe auf Schwarz setzen und dann Fenster leeren: SDL_SetRenderDrawColor(renderer, 235, 235, 235, 255); SDL_RenderClear(renderer); // Bild laden: SDL_Surface *bild = SDL_LoadBMP("logo.bmp"); // Textur erzeugen und Surface löschen: SDL_Texture *textur = SDL_CreateTextureFromSurface(renderer, bild); SDL_FreeSurface(bild); // Größe und Position des Bildes im Fenster festlegen: SDL_Rect pos; pos.x = 150; pos.y = 100; SDL_QueryTexture(textur, NULL, NULL, &pos.w, &pos.h); // Textur in das Fenster kleben: SDL_RenderCopy(renderer, textur, NULL, &pos); // Anzeigen: SDL_RenderPresent(renderer); // Warte auf Tastendruck oder Mausklick: SDL_Event ereignis; int quit=1; while(quit) { SDL_WaitEvent(&ereignis); switch(ereignis.type) { case SDL_QUIT: printf("Fenster geschlossen\n"); quit=0; break; case SDL_KEYDOWN: printf("Tastendruck\n"); printf("Physische Taste %s als Taste %s gedrückt\n", SDL_GetScancodeName(ereignis.key.keysym.scancode), SDL_GetKeyName(ereignis.key.keysym.sym)); quit=0; break; case SDL_MOUSEBUTTONDOWN: printf("Linke Maustaste gedrückt an\n"); printf("Position: (%d, %d)\n", ereignis.motion.x, ereignis.motion.y); quit=0; break; } } SDL_DestroyTexture(textur); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(fenster); SDL_Quit(); return 0; }