Napisałem mapę kafelkową, taką jak Pan SzymonSiarkiewicz w 1 serii robiania gry, ale nie działa mi. Jak ją prubuję uruchomić do wyskakuje mi biały ekran. Oto kody:
konstruktor:
Engine::Engine(RenderWindow &window)
{
for(int i = 1; i < Map::COUNT; i++)
{
texture[i].loadFromFile("tileset.png", IntRect((i-1) * maps.tileWidth, 0, maps.tileWidth, maps.tileHeight));
}
maps.loadFromFile("map.txt");
for(int i = 0; i < maps.height; i++)
{
for(int j = 0; j < maps.width; j++)
{
if(maps.level[i][j].type != Map::NONE)
{
sprite[i][j].setTexture(texture[maps.level[i][j].type]);
sprite[i][j].setPosition(j * maps.tileWidth, i * maps.tileHeight);
}
}
}
runEngine(window);
}
uruchomienie:
void Engine::runEngine(RenderWindow &window)
{
window.clear();
for(int i = 0; i < maps.height; i++)
{
for(int j = 0; j < maps.width; j++)
{
if(maps.level[i][j].type != Map::NONE)
{
window.draw(sprite[i][j]);
}
}
}
window.display();
}
ładowanie poziomu:
void Map::loadFromFile(string filename)
{
fstream file;
file.open(filename, ios::in);
if(!file.is_open())
cout<<"Nie znaleziono poziomu: "+filename;
else
{
for(int y=0; y < height; y++)
{
for(int x=0; x < width; x++)
{
int tmp;
file >> tmp;
level[y][x].type = TileType(tmp);
if(tmp==0)
level[y][x].isWall = false;
else
level[y][x].isWall = true;
}
}
}
file.close();
}