Uppgifter | |
Användarnamn | |
Besök | - |
Hemsida | Ingen |
Plats (stad) | |
Senaste besök | 01:00 - 1:a Januari 1970 |
Poster i forumet | |
Varningar | |
Grupp | |
Medlem sedan | 01:00 - 1:a Januari 1970 |
Artiklar och filer | |
Den här användaren har inga artiklar eller filer |
Den här användaren har inte skapat någon personlig presentation. |
SDL (hjälp) |
Tack. Postad 16:45 - 16:e Februari 2009 |
SDL (hjälp) |
Hur lägger man upp två eller flera bilder i SDL? Jag har försökt, men då blinkar bara bilderna och hakar när man försöker röra dem. Kod: //Visar vart programmet ska leta efter filerna. #ifdef WIN32 #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDLmain.lib") #endif //Inkluderar bibliotek. #include <SDL.h> #include <iostream> using namespace std; //Skärmen som bilden visas på. int DisplayImage(SDL_Surface* destination, const char*, int x, int y) { //Laddar bilden. SDL_Surface* bakgrund; SDL_Surface* image; bakgrund = SDL_LoadBMP("bakgrund.bmp"); image = SDL_LoadBMP("test.bmp"); if (image == NULL) { cout<< "Image could not be loaded." << endl; SDL_Quit(); return 1; } //Vart bilden laddas upp. SDL_Rect rect; rect.x = x; rect.y = y; rect.w = image->w; rect.h = image->h; SDL_BlitSurface(image, NULL, destination, &rect); SDL_BlitSurface(bakgrund, NULL, destination, &rect); return 0; } //Programmets main funktion. int main(int argc, char *argv[]) { SDL_Surface *screen; SDL_Event event; int imgX=0,imgY=10; //Intierar SDL. if (SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0) { cout<< "Error, unable to initalize SDL: " << SDL_GetError() << endl; SDL_Quit(); return 1; } else { cout<< "Succsesfully initalized SDL!" << endl; } //Ställer in höjd, bredd, färger. hårdvara och buff. screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE|SDL_DOUBLEBUF); if (screen == NULL) { cout<< "Unable to set video mode: " << SDL_GetError() << endl; SDL_Quit(); return 1; } else { cout<< "Succsesfully set video mode!" << endl; } //Gör så att bilden ritas ut flera gånger för den är i en loop. while(1) { SDL_PollEvent(&event); switch(event.type) { case SDL_QUIT: cout<< "Terminating program!" << endl; SDL_Quit(); return 0; case SDL_KEYDOWN: Uint8 *keys; //Vart bilden ska ritas ut (rör på sig). keys = SDL_GetKeyState(NULL); if (keys[SDLK_UP]) imgY -= 5; if (keys[SDLK_DOWN]) imgY += 5; if (keys[SDLK_LEFT]) imgX -=5; if (keys[SDLK_RIGHT]) imgX +=5; if (keys[SDLK_ESCAPE]) { cout<< "Terminating program!" << endl; SDL_Quit(); return 0; } } //"Suddar" ut bilderna innan så att det inte blir massor av bilder (fyller bakgrunden med svart innan bilden ritas). SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0x00, 0x00, 0x00)); //Ritar ut bild. DisplayImage(screen, "bakgrund.bmp", 0, 0); SDL_Flip(screen); SDL_Delay(25); //Ritar ut bild. DisplayImage(screen, "test.bmp", imgX, imgY); SDL_Flip(screen); SDL_Delay(25); } //Stänger programmet. SDL_Quit(); //Visar att det har slutat som det ska. return 0; } Postad 11:06 - 15:e Februari 2009 |
Programmerings språk. |
Vilket språk borde man lära sig? Jag kan lite i c++ men jag hittar inga böcker om det, så jag funderar på att byta. Och vilka/vilket är bäst för spelprogrammering? Tacksam för svar. Postad 20:33 - 20:e Januari 2009 |
Nya medlemmar |
Välkommna. ^^ Postad 23:09 - 12:a December 2008 |
Skryt med era datorer! :D |
Kan du inte ta bort ESC knappen då med en kniv eller något, ta bort brödsmulan och sen sätta dit den igen? Postad 07:35 - 8:e December 2008 |
Datum
2024-12-21 17:16
Vecka: 51
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.