2013-04-30 47 views
2

嗨,我工作的一個SDL/C遊戲,我做了一個相機與 大背景下(6000 * 1024)和(1024 * 768)屏幕滾動SDL:塊傳輸的背景,而不是屏幕?

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

所以如果我想要做塊屏幕上的內容作爲destenation:

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

遵循相機移動時,至極它不是ennemies他們應該在背景上移動的情況下,而不是在屏幕!

所以,如果我的背景,目標位塊傳輸的東西,我有一個problèmeas以下,

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

舊圖像停留在背景因爲如下因素畫面移動時:

回答

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));