1
Général / Re : Program received signal SIGSEGV
« le: Janvier 28, 2016, 06:41:38 am »
Je peux me planter car encore une fois je connais pas bien les sprites et, le c/c++, ça fait longtemps que j'ai pas utilusé. De plus je n'ai pas de PC sous la main, je ne peux pas vérifier ce que je dis.
Map.cpp
En regardant mieux, a quoi sert la ligne
Juste avant le push_back tu fais
Map.cpp
#include "Map.h"
Map::Map()
{
int carte[800/taille_block][400/taille_block];
vector<entity> objects;
entity carte_base("map1.png");
carte_w = carte_base.getSprite().getTexture()->getSize().x;
carte_h = carte_base.getSprite().getTexture()->getSize().y;
num_ofObject = (carte_w/taille_block)*(carte_h/taille_block);
cout << num_ofObject << endl;
for(int i = 0; i < carte_w/taille_block; i++)
{
for(int y = 0; y < carte_h/taille_block; y++)
{
carte_base.getSprite().setTextureRect(IntRect(i*taille_block,y*taille_block,taille_block,taille_block));
objects.push_back(carte_base);
cout << "Object added sucessfully ! x : "<<i*taille_block<<" y : "<<y*taille_block<<endl;
}
}
}
Map::Map()
{
int carte[800/taille_block][400/taille_block];
vector<entity> objects;
entity carte_base("map1.png");
carte_w = carte_base.getSprite().getTexture()->getSize().x;
carte_h = carte_base.getSprite().getTexture()->getSize().y;
num_ofObject = (carte_w/taille_block)*(carte_h/taille_block);
cout << num_ofObject << endl;
for(int i = 0; i < carte_w/taille_block; i++)
{
for(int y = 0; y < carte_h/taille_block; y++)
{
carte_base.getSprite().setTextureRect(IntRect(i*taille_block,y*taille_block,taille_block,taille_block));
objects.push_back(carte_base);
cout << "Object added sucessfully ! x : "<<i*taille_block<<" y : "<<y*taille_block<<endl;
}
}
}
En regardant mieux, a quoi sert la ligne
objects.push_back(carte_base);
objects contient plusieurs éléments mais ils sont tous identiques.Juste avant le push_back tu fais
carte_base.getSprite()...
Cette méthode te retourne toujours le même sprite : sp_perso de la classe entity. Donc tu modifies toujours sp_perso qui contient toujours le dernier sprite de ton fichier texture à la fin de ton traitement.