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
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int tile_width = 128; int tile_height = 64; // X for (int i = 0; i < 7; ++i) { // Y for (int j = 0; j < 7; ++j) { int offset_x = (!(j & 1) ? tile_width / 2 : 0); // X , Y Zeichne_Tile (tile_width * i + offset_x, tile_height / 2 * j); } } |
Quellcode |
|
1 |
error C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt |
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 |
#include <SDL.h> #include <windows.h> int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { int tile_width = 128; int tile_height = 64; SDL_Surface* screen; // unser Bildschirm/Zeichenfläche/Frontbuffer SDL_Surface* image; // unsere Bitmap SDL_Rect src_bmp; // Maße der Bitmap SDL_Rect dest_scr; // Maße der Bitmap auf dem Bildschirm // 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 image = SDL_LoadBMP("Boden.bmp"); if(!image) { // Fehlerbehandlung return 1; } // Werte für unsere Bitmap setzten src_bmp.w = image->w; // Ganze Breite der Bitmap, die wir von unseren Surface beziehen src_bmp.h = image->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(image, SDL_SRCCOLORKEY, 0xFF00FF); // Bild auf den Backbuffer blitten(zeichnen) SDL_BlitSurface(image, &src_bmp, screen, &dest_scr); // Jetzt vom Backbuffer auf dn Frontbuffer SDL_Flip(screen); // X for (int i = 0; i < 7; ++i) { // Y for (int j = 0; j < 7; ++j) { int offset_x = (!(j & 1) ? tile_width / 2 : 0); // X , Y screen (tile_width * i + offset_x, tile_height / 2 * j); } } // Jetzt Aktion... SDL_Delay(3000); // 3 Sekunden warten // Surface löschen SDL_FreeSurface(image); SDL_FreeSurface(screen); // SDL herunterfahren SDL_Quit(); return 0; } |
Zitat
C-/C++-Quelltext
1 screen (tile_width * i + offset_x, tile_height / 2 * j);
Quellcode |
|
1 2 |
int Breite = 7; int Höhe = 7; |
Quellcode |
|
1 2 3 4 5 6 7 |
for (int y=0; y<Höhe; y++) { for (int x=0; x<Breite; x++) { SDL_Flip(screen); } } |
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 |
#include <stdlib.h> #include <SDL.h> int main(int argc, char *argv[]) { int Breite = 7; int Höhe = 7; SDL_Surface *screen, *image; SDL_Rect dst; SDL_Event event; int done = 0; if (SDL_Init(SDL_INIT_VIDEO) == -1) { printf("Can't init SDL: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF); SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 58,95,205)); if (screen == NULL) { printf("Can't set video mode: %s\n", SDL_GetError()); exit(1); } image = SDL_LoadBMP("Boden.bmp"); if (image == NULL) { printf("Can't load image of tux: %s\n", SDL_GetError()); exit(1); } dst.x = 200; dst.y = 200; dst.w = image->w; dst.h = image->h; SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 255, 0, 255)); SDL_BlitSurface(image, NULL, screen, &dst); for (int y=0; y<Höhe; y++) { for (int x=0; x<Breite; x++) { dst.x ++; SDL_BlitSurface(image, NULL, screen, &dst); } dst.y ++; } SDL_FreeSurface(image); SDL_Flip(screen); while (!done) { while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: done = 1; break; } } } return 0; } |
C-/C++-Quelltext |
|
1 |
SDL_BlitSurface(image, NULL, screen, &dst);
|
Werbeanzeige