So I've got somewhat of a factory in my game that handles the Enemies. Now for some reason, it is only drawing one sprite on my screen and setting its position randomly rather than spawning in a new enemy each time. How would I actually get multiple spawning rather than just one?
Here is my code:
Game.h
std::vector<BaseEnemy*> enemyVector;
std::vector<BaseEnemy*>::iterator enemy_iter;
Troll *troll;
Game.cpp
troll = new Troll;
troll->setPosition(std::rand() % 600 + 1, std::rand() % 600 + 1);
enemyVector.push_back(troll);
for (enemy_iter = enemyVector.begin(); enemy_iter != enemyVector.end(); enemy_iter++)
{
(*enemy_iter)->draw(window);
}
Troll.cpp
void Troll::setPosition(int x, int y)
{
BaseEnemy::setPosition(x, y);
}
void Troll::draw(sf::RenderWindow &window)
{
BaseEnemy::draw(window);
}
BaseEnemy.cpp
BaseEnemy::BaseEnemy()
{
rect.setSize(sf::Vector2f(20, 20));
rect.setPosition(0, 0);
rect.setFillColor(sf::Color::Black);
}
BaseEnemy::~BaseEnemy()
{
}
void BaseEnemy::setPosition(int x, int y)
{
rect.setPosition(x, y);
}
void BaseEnemy::draw(sf::RenderWindow &window)
{
window.draw(rect);
}