sf::Sprite enemy1(enemy);
and then...
list1.push_back (enemy);
list1.push_back (enemy);
list1.push_back (enemy);
list1.push_back (enemy);
Copy many of such lines and then just
App.Draw(enemy1);
App.Display();
or something else should be added? I think, there should, but I've no idea what.
I don't know, how far you are at programming...
but you should take a look at, classes, templates, loops etc.
At first, you have to define a Template for the List. That means, you have to define, what "type of element" it can hold.
For Example:
std::list<sf::Sprite> EnemyList; //Create a std::list, that can store sf::Sprites
sf::Sprite EnemySprite(enemyimage); //Create a Sprite
/* Now you have to fill the list, therefor you can use a for loop, instead of copying your code againd and again */
int enemy_rows = 3; //How many rows should there be?
int enemys_per_row = 15; //How many Enemys should be in one row?
for(int i = 0; i < enemy_rows; i++)
{
for(int j = 0; j < enemys_per_row; j++)
{
EnemySprite.SetPosition(j*64, i*64); //For example, if you want 64 pixels space between every sprite
EnemyList.push_back(EnemySprite);
}
}
App.Clear();
for(std::list<sf::Sprite>::iterator it = EnemyList.begin(); it!=EnemyList.end(); it++)
{
App.Draw(*it);
}
App.Display();
It's not perfect and totally correct, but it should get you in the right way.
If you don't understand, what I did there, you should first learn more C++