Я создал класс для своих пикапов в своем Pickup.h. Это было бы:Не показывать Sprite, созданный с помощью класса
class Pickup
{
private:
Sprite m_Sprite;
int m_Value;
int m_Type;
public:
Pickup (int type)
{
m_Type = type;
if (m_Type == 1)
{
Sprite m_Sprite;
Texture health;
health.loadFromFile("health.png");
m_Sprite.setTexture(health);
}
else ...
}
void spawn()
{
srand((int)time(0)/m_Type);
int x = (rand() % 1366);
srand((int)time(0) * m_Type);
int y = (rand() % 768);
m_Sprite.setPosition(x, y);
}
Sprite getSprite()
{
return m_Sprite;
}
};
Если я пытаюсь рисовать на экране спрайт, созданный с этим классом, используя
Pickup healthPickup(1);
healthPickup.spawn();
перед входом в игровой цикл, и внутри игрового цикла, чтобы положить
mainScreen.draw(healthPickup.getSprite());
Я никогда не увижу этот спрайт на экране. Я попытался сделать еще один спрайт, используя
Sprite m_Sprite2;
Texture health2;
health2.loadFromFile("health.png");
m_Sprite2.setTexture(health2);
m_Sprite2.setPosition(healthPickup.getSprite().getPosition().x, healthPickup.getSprite().getPosition().y);
, и если я попытаюсь отобразить его в игровом цикле, все будет хорошо. Мой вопрос: почему это не работает с моим созданным классом?
NVM взгляд на конструкторе, вы создаете спрайт с именем m_sprite вместо того, чтобы просто установив свой m_sprite. – Eddge