2015-08-08 111 views
1

我在C++ SDL lib中工作。我試圖動態地創建一些矩形。但它不起作用。我發現通過搜索stackoverflow.com的唯一解決方案是創建一個不變的值,我不想這樣做。SDL無法創建沒有常量變量的矩形陣列

任何人都可以幫助我嗎?

這是我的代碼:

void lvl001(){ 
max_score = 20; 
count_enemies = 2; 
SDL_Surface *enemie; 
SDL_Rect enemies_sources[no] , enemies[no]; 

enemie = SDL_LoadBMP("player.bmp"); 

for(int count = 1; count <= no ; count++){ 
enemies_sources[count].x = 0; 
} 
} 

還有一件事。如果能解決這個問題,那麼我應該如何繼續下去(SDL_Blit...)?

+0

「[...]創建一個恆定值,這我不想。「 - 你爲什麼不想? – emlai

+0

天頂。因爲我試圖創造一個遊戲,而你看到的空白是我第一級的一部分。每當我創建下一個級別時,我應該重新定義矩形? –

回答

5

在C++中,使用std::vector<T>創建動態數組,並通過使用循環的範圍內,基於for時不關心指數:

std::vector<SDL_Rect> enemies_sources(no); 
std::vector<SDL_Rect> enemies(no); 

for (auto& source : enemies_sources) 
{ 
    source.x = 0; 
} 
+2

@ electric-web例如['SDL_BlitSurface'](https://wiki.libsdl.org/SDL_BlitSurface)。 – emlai