Bonjour, je viens de me remettre a coder et je rencontre actuellement un problème de code :
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
int LARGEUR_TILE;
int HAUTEUR_TILE;
int main()
{
sf::RenderWindow World(sf::VideoMode(600, 600), "tilemap");
sf::Texture myTexture;
myTexture.loadFromFile("ressource/tuiles.png");
sf::Sprite mySprite(myTexture);
mySprite.setTextureRect(sf::IntRect(80,0,40,40));
int map[16][8]
{
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3,
0, 1, 0, 0, 2, 0, 3, 3, 3, 0, 1, 1, 1, 0, 0, 0,
0, 1, 1, 0, 3, 3, 3, 0, 0, 0, 1, 1, 1, 2, 0, 0,
0, 0, 1, 0, 3, 0, 2, 2, 0, 0, 1, 1, 1, 1, 2, 0,
2, 0, 1, 0, 3, 0, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1,
0, 0, 1, 0, 3, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1,
};
sf::Sprite tuile0;
tuile0 = mySprite;
///BOUCLE///////////////////////////////
while (World.isOpen())
{
sf::Event event;
while (World.pollEvent(event))
{
if (event.type == sf::Event::Closed)
World.close();
}
World.clear();
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 2; j++)
{
//selon le code trouve dans le tableau on parametre le bon tile et on le colle sur l'ecran
switch(map[i][j])
{
case 0:
tuile0.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
World.draw(tuile0);
break;
}
}
}
World.display();
}
}
Une fois exécuter ( pas d’erreurs ) je n'ai que sa :
J'implore donc de l'aide. Vous n’êtes pas obliger de m'aider mais j'en serais très ravie
C'est ce que je faisais en te disant d'initialiser tes variables. ;) En rejetant un coup d'oeil on voit vite que LARGEUR_TILE et HAUTEUR_TILE n'étaient pas initialisées.
map c'est un tableau de tableaux, t'initialises un tableau avec { blabla }, donc un tableau de tableaux c'est { { blabla1}, { blabla2 } }int a[3][4] = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11}
};
Mais c'est pas obligatoire.
Et du coup, je suis pas sûr que ton tableau se remplisse réellement comme tu le penses.
map[0] c'est 0, 0, 0, 0, 0, 0, 0, 0
map[1] c'est 0, 0, 0, 2, 2, 2, 2, 2
16 tableaux de 8 entiers, et pas 8 tableaux de 16 entiers.
Ça peut expliquer ton problème de textures qui ne correspondent pas. Donc faut arranger ça autrement.
Et sinon à quoi servent tes mySprite ? Tu peux faire ça directement avec tes variables tuile. :o