2012-05-16 29 views
0

所以,即时尝试创建SFML pacman游戏,我创建了一个名为幻想类为我的鬼, 即时通讯尝试传递一个SF ::图像已在我的类中的一个参数,但似乎我得到一个没有值的变量,导致它加载一个空白图像,但它具有相同大小(18x18像素)的图像im试图加载。试图通过一个SF:图像有一个类参数

我的班级

class fant { 
public: 
    void SetX(int i); 
    int GetX(); 
    void SetY(int i); 
    int GetY(); 
    void SetDX(int i); 
    int GetDX(); 
    void SetDY(int i); 
    int GetDY(); 
    void Sprite(sf::Sprite i); 
    sf::Sprite GetSprite(); 
    void Image(sf::Image i); 
protected: 
    int posx,posy,dirx,diry; 
    sf::Sprite sprite; 
}; 

void fant::SetX(int i) { posx=i; sprite.SetX(posx); } 
void fant::SetY(int i) { posy=i; sprite.SetY(posy); } 
void fant::SetDX(int i) { dirx=i; } 
void fant::SetDY(int i) { diry=i; } 
void fant::Sprite(sf::Sprite i) { sprite=i; } 
void fant::Image(sf::Image i) { sprite.SetImage(i); } 
sf::Sprite fant::GetSprite() { return sprite; } 
int fant::GetX() { return posx; } 
int fant::GetY() { return posy; } 
int fant::GetDX() { return dirx; } 
int fant::GetDY() { return diry; } 

,如果我使用

void fant::Image(sf::Image i) { sprite.SetImage(f1); } 

它设置了 “F1” 的形象多数民众的创建一个新的对象

void addf() { 
    fa.push_back(fant()); 
    int t=fa.size()-1; 
    fa[t].SetX(684); fa[t].SetY(18); 
    fa[t].Image(f1); 
    fa[t].SetDX(6); 
    fa[t].SetDY(0); 
} 

的功能。 (全球SF ::图片)

+0

哦,对不起,我不知道这事,谢谢你的提示 – Mete

回答

1
class fant { 
public: 

sf::Sprite GetSprite() 
{ 
    return sprite; 
} 
void LoadImage(std::string path); 
protected: 
int posx,posy,dirx,diry; 
sf::Sprite sprite; 
sf::Image image; 
}; 

void fant::LoadImage(std::string path) 
{ 
    image.LoadFromFile(path.c_str()); 
    sprite.SetImage(image); 
} 
相关问题