Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML]Wyświetlenie o jeden kafelek więcej niż się mieści na ekranie.

Ostatnio zmodyfikowano 2012-09-22 16:50
Autor Wiadomość
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ł.
P-65383
hincu
» 2012-09-22 16:45:39
zamiast +1 uzyj ++, aczkolwiek nie wiem dlaczego tobie wywala bo mi ten kod dziala poprawnie
P-65386
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.
P-65388
« 1 »
  Strona 1 z 1