SDL:背景而不是屏幕上的blitting?

时间:2013-04-30 16:59:38

标签: c++ c sdl 2d-games sdl-image

嗨,我正在开发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 );

旧图片在背景中保留,当移动为下面的图片时:

1 个答案:

答案 0 :(得分:0)

首先我必须说你实现相机滚动的方式非常重。我建议您只需将对象直接绘制到屏幕表面,并考虑相机位置。

如果您想坚持您的计划,则应在重新绘制之前清除背景。这可以使用命令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));