尝试传递 sf::Image 具有类的参数
Trying to pass a sf::Image has a parameter for a class
所以,我试图在SFML中创建一个吃豆人游戏,我为我的鬼魂创建了一个名为fant的类,im 试图传递 sf::Image 在我的类中有一个参数,但似乎我得到了一个没有值的变量,因为它加载了一个空白图像,但它具有与 im 尝试加载的图像相同的大小(18x18 像素)。
我的班级是
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 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);
}
如果我使用
void fant::Image(sf::Image i) { sprite.SetImage(f1); }
它设置"F1"图像。(全球sf::图片)
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);
}
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 使用不带参数的函数访问结构元素
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何使用Luacneneneba API正确读取字符串和表参数
- 在派生函数中指定void*参数
- 视图中的参数推导失败:take_while
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 使用指向成员的指针将成员函数作为参数传递
- 没有名称的C++模板参数
- 尝试传递 sf::Image 具有类的参数