嗨,我正在开发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 );
旧图片在背景中保留,当移动为下面的图片时:
答案 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));