Bonjour,
Je débute en programmation avec la sfml et je suis en train de faire un jeu en 2d isométrique. J'affiche donc ma map en assemblant des tiles, mon personnage avance dessus en bougeant la caméra, mais le soucis c'est que sur une grosse map le jeu commence à ramer sérieusement au niveau des fps.
Je vous consulte donc pour savoir quel est la meilleur technique à adopter et comment l'appliquer à mon code pour optimiser l'affichage des tiles, j'ai en tête de prendre la position centrale de la view et d'afficher le nombre de tiles en x et en y selon cette position.
voici un bout de code en c++ :
sf::Vector2f positionTileUpLeft(0, 0);
int max_tile_length = 10;
int max_tile_width = 10;
std::vector<sf::Sprite *>::iterator it = this->floorVect.begin();
for (i = positionTileUpLeft.x; i < this->y_map || i < max_tile_length; i++) // je parcours tous les tiles et je set leurs valeurs en x et y
{
for (j = positionTileUpLeft.y; j < max_tile_width; j++)
{
x = (i - j) * (*it)->GetSize().x / 2;
y = (i + j) * (*it)->GetSize().y / 2;
(*it)->SetX(x);
(*it)->SetY(y);
this->App->Draw(**it);
++it;
}
}
Merci d'avance pour votre aide.