Sto cercando di scrivere un gioco platform in cui gli sprite per gli sfondi di livello sono suddivisi in blocchi di 512x512. Tengo 3 blocchi in memoria alla volta e sto provando a scrivere codice per blitare tutti e tre sullo schermo. Ecco il codice attuale che ho:
SDL_Rect where;
where.y = -game->camera->y;
where.x = -game->camera->x - MAP_WIDTH;
SDL_BlitSurface(left_chunk, NULL, screen, &where);
where.x = -game->camera->x;
SDL_BlitSurface(center_chunk, NULL, screen, &where);
where.x = -game->camera->x + MAP_WIDTH;
SDL_BlitSurface(right_chunk, NULL, screen, &where);
Il problema in cui mi imbatto è che qualsiasi pezzo venga benedetto per primo è l'unico che si presenta. Il resto non appare sullo schermo. Penso che il problema potrebbe avere qualcosa a che fare con la trasparenza alfa, ma anche se i pezzi non si sovrappongono affatto non riescono ancora a blit. In altre parti del codice inserisco contemporaneamente più elementi sullo schermo, come personaggi e sfondi, e tutti vengono visualizzati correttamente. Questo particolare segmento di codice è l'unica area in cui sto riscontrando questo problema.
Se commento la riga che unisce left_chunk, cambia in questo: