簡體   English   中英

SDL:在背景而不是屏幕上閃爍?

[英]SDL : blitting on background instead of screen?

嗨,我正在開發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 );

作為以下圖片移動時, 舊圖像會保留在背景上

首先,我必須說,您實現相機滾動的方式非常繁瑣。 我建議您考慮到攝像機的位置,直接將對象直接繪制到屏幕表面。

如果要堅持使用計划,則應在重新繪制背景之前清除背景。 可以使用命令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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM