[SFML]Wyświetlenie o jeden kafelek więcej niż się mieści na ekranie.
Ostatnio zmodyfikowano 2012-09-22 16:50
Damianu Temat założony przez niniejszego użytkownika |
[SFML]Wyświetlenie o jeden kafelek więcej niż się mieści na ekranie. » 2012-09-22 16:36:23 void CMap::Draw() { const int height=App.GetHeight(); const int width=App.GetWidth(); sf::Sprite mapSprite[width/tileSize][height/tileSize]; const int tileCount=(mapImage.GetWidth()/tileSize); for(int l=0;l<tileLayerCount;l++) { for(int y=0;y<height/tileSize+1;y++) { for(int x=0;x<width/tileSize+1;x++) { terrainData[l][x][y]=24; int stX=getTerrain(l,x,y)%tileCount * tileSize; int stY=getTerrain(l,x,y)/tileCount * tileSize; const sf::IntRect & kwd = sf::IntRect(stX,stY,stX+tileSize,stY+tileSize); mapSprite[x][y].SetImage(mapImage); mapSprite[x][y].SetSubRect(kwd); mapSprite[x][y].SetPosition(x*tileSize,y*tileSize); App.Draw(mapSprite[x][y]); } } } }
To jest kod którego użyłem ja, ale tu właśnie pojawia się problem, gdy usunę z pętli +1, czyli dam tak żeby mieściło się akurat, gra działa bardzo dobrze, jednak gdy chcę wyświetlić o jeden więcej gra się crashuje.. SFML używam dopiero od niedawna, więc nie zbyt wiem jak sobie z tym poradzić, na allegro podobny kod normalnie działał. |
|
hincu |
» 2012-09-22 16:45:39 zamiast +1 uzyj ++, aczkolwiek nie wiem dlaczego tobie wywala bo mi ten kod dziala poprawnie
|
|
Damianu Temat założony przez niniejszego użytkownika |
» 2012-09-22 16:50:30 Nvm, głupi byłem, zapominałem zwiększyć tablicy ze sprite. |
|
« 1 » |