SDL: блин на фоне вместо экрана?

Привет, я работаю над игрой SDL / C, я сделал прокрутка камеры с
большой фон (6000 * 1024) и (1024 * 768) экран,

game.screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );

так что если я захочу что-то стряхнуть с экрана в качестве разряда:

apply_surface( xxx, yyy, map.BALL, game.screen, NULL );

будет следуйте за камерой при движении, для врагов дело обстоит не так, как на экране, а на экране!

так что, если я что-то выбрасываю на задний план в качестве пункта назначения, у меня возникает проблема,

apply_surface( xxx, yyy, map.BALL, map.background, NULL );

старые изображения остаются на заднем плане при перемещении в виде следующих картинок:


2

Решение

Сначала я должен сказать, что ваш способ осуществления прокрутки камеры довольно тяжелый. Я бы порекомендовал вам просто рисовать объекты прямо на поверхности экрана с учетом положения камеры.

Если вы хотите придерживаться своего плана, вы должны очистить фон, прежде чем перерисовывать его. Это можно сделать с помощью команды SDL_FillRect.

// Replace 101, 102, 103 with the background color you want
SDL_FillRect(map.background, NULL, SDL_MapRGB(map.background->format, 101, 102, 103));
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector