Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 |
SDL_Surface* MainScreen; MainScreen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
this->screen_dimensions.h = this->screen->h; this->screen_dimensions.w = this->screen->w; this->screen_dimensions.x = 10; this->screen_dimensions.y = 50; SDL_BlitSurface(this->screen, &this->screen_dimensions, MainScreen, &this->screen_dimensions); SDL_Flip(MainScreen); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
#include <iostream> #include <SDL/SDL.h> #include <windows.h> int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { bool game = true; SDL_Surface* screen; // unser Bildschirm/Zeichenfläche/Frontbuffer SDL_Surface* BGimage; // unsere Bitmap SDL_Rect src_bmp; // Maße der Bitmap SDL_Rect dest_scr; // Maße der Bitmap auf dem Bildschirm // Uint8 type; Uint8 state; SDL_keysym keysym; SDL_Event event; // SDL initialisieren if(SDL_Init(SDL_INIT_VIDEO) < 0) { // Fehlerbehandlung return 1; } // Videomodus setzten(640*480*32) und abspeichern screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); if(!screen) { // Fehlerbehandlung return 1; } // Bitmap laden und abspeichern BGimage = SDL_LoadBMP("C:/Test.bmp"); if(!BGimage) { // Fehlerbehandlung return 1; } // Werte für unsere Bitmap setzten src_bmp.w = BGimage->w; // Ganze Breite der Bitmap, die wir von unseren Surface beziehen src_bmp.h = BGimage->h; // Ganze Höhe der Bitmap, die wir von unseren Surface beziehen src_bmp.x = src_bmp.y = 0; // Ganze Bitmap zeichen, also von obenan zeichnen (0;0) dest_scr = src_bmp; // Ziel auf dem Bildschirm = Maße der Bitmap // Colorkey setzen, also die Farbe, die transparent wird, hier rosa SDL_SetColorKey(BGimage, SDL_SRCCOLORKEY, 0xFF00FF); //schleife starten while(game) { if (event.key.keysym.sym == SDLK_ESCAPE) { game = false; } // Bild auf den Backbuffer blitten(zeichnen) SDL_BlitSurface(BGimage, &src_bmp, screen, &dest_scr); // Jetzt vom Backbuffer auf dn Frontbuffer SDL_Flip(screen); // Jetzt Aktion... SDL_Delay(3000); // 3 Sekunden warten } // ende der game schleife // Surface löschen SDL_FreeSurface(BGimage); SDL_FreeSurface(screen); // SDL herunterfahren SDL_Quit(); return 0; } |
Zitat von »"E122"«
Kommts denn bis in die Nachrichtenschleife ?
Wie stürtzt es ab, und mit welchem Fehlercode ?
á la Messagebox C0005 fehler beim lesen an der stelle ....
oder mit Error-Code ?
Quellcode |
|
1 2 |
Process returned -805306369 (0xCFFFFFFF) execution time : 211.713 s Press any key to continue. |
Zitat von »"E122"«
Wo wird denn Event abgefragt ?
Werbeanzeige