Hier mal den ganzen Code !!
#include <iostream>
#include <SFML\Graphics.hpp>
#include <SFML\Window.hpp>
#include <sstream>
#include <list>
//Eigene Header//
#include "Game.hpp"
using namespace std;
void Hauptmenü()
{
// Gegner Spawn //
sf::Clock cSPGegner;
sf::Clock cBSchuss;
// Gegner Liste //
std::list<sf::Sprite>lGegner;
std::list<sf::Sprite>::iterator endg = lGegner.end();
std::list<sf::Sprite>lSchuss;
std::list<sf::Sprite>::iterator SchussIt;
std::list<sf::Sprite>::iterator ends = lSchuss.end();
//Laufzeit/FensterVariablen//
bool pRunning = true;
//__________//
// Eventabfrage //
sf::Event Event;
//__________//
//Fenster wird Erstellt//
sf::RenderWindow Fenster(sf::VideoMode(800,400,32),"Monster Adventure",sf::Style::Titlebar);
Fenster.SetFramerateLimit(60);
const sf::Input& Input = Fenster.GetInput();
//__________//
//Grafiken//
//.Hintergrund.//
sf::Image iHintergrund;
iHintergrund.LoadFromFile("Game/Space.png");
sf::Sprite sHintergrund;
sHintergrund.SetImage(iHintergrund);
//---------//
//.Raumschiff-1.//
sf::Image iRaumschiff1;
iRaumschiff1.LoadFromFile("Game/Raumschiff1.png");
iRaumschiff1.CreateMaskFromColor(sf::Color::Black);
sf::Sprite sRaumschiff1;
sRaumschiff1.SetImage(iRaumschiff1);
sRaumschiff1.SetPosition(400,350);
sRaumschiff1.SetCenter(6.5,17);
//---------//
//.Gegner1.//
sf::Image iGegner1;
iGegner1.LoadFromFile("Game/Gegner1.png");
iGegner1.CreateMaskFromColor(sf::Color::Black);
//.Schuss.//
sf::Image iSchuss;
iSchuss.LoadFromFile("Game/Playerschuss.png");
//___________//
// Hauptschleife //
while(pRunning == true)
{
// Event //
while(Fenster.GetEvent(Event))
{
//Get Mauszeiger Position//
sf::Vector2f Maus(Fenster.GetInput().GetMouseX(), Fenster.GetInput().GetMouseY());
//________//
}//ende Eventschleife
// Raumschiff Bewegungen/Aktionen //
//.raumschiff bewegen.//
if(Input.IsKeyDown(sf::Key::A))
{
sRaumschiff1.Move(-400*Fenster.GetFrameTime(),0);
}
if(Input.IsKeyDown(sf::Key::D))
{
sRaumschiff1.Move(400*Fenster.GetFrameTime(),0);
}
//.raumschiff kolidirt mit rand.//
if(sRaumschiff1.GetPosition().x < 50)
{
sRaumschiff1.Move(400*Fenster.GetFrameTime(),0);
}
if(sRaumschiff1.GetPosition().x > 750)
{
sRaumschiff1.Move(-400*Fenster.GetFrameTime(),0);
}
//.raumschiff schiest.//
if(Input.IsKeyDown(sf::Key::W))
{
if(cBSchuss.GetElapsedTime() > 0.2)
{
//schuss Sprite wird erstellt
sf::Sprite *sSchSprite;
sSchSprite = new sf::Sprite;
sSchSprite->SetImage(iSchuss);
sSchSprite->SetPosition(sRaumschiff1.GetPosition());
//Schuss wird liste hinzugefügt
lSchuss.push_back(*sSchSprite);
//reset Schusstimer
cBSchuss.Reset();
}
}
//_________//
// Spawn Gegner //
if(cSPGegner.GetElapsedTime() > 2)
{
//Gegner Sprite wird erstellt
sf::Sprite *hSprite;
hSprite = new sf::Sprite;
hSprite->SetImage(iGegner1);
hSprite->SetPosition(sf::Randomizer::Random(50,750),50);
//Gegner wird liste hinzugefügt
lGegner.push_back(*hSprite);
std::cout << "Monster vorhanden: " << lGegner.size() << std::endl;
//Reset spawntimer
cSPGegner.Reset();
}
// Fensterinhalt //
Fenster.Clear(sf::Color::White);
Fenster.Draw(sHintergrund);
//Schuss zeichnen
for(std::list<sf::Sprite>::iterator SchussIt = lSchuss.begin();SchussIt != ends;)
{
SchussIt->Move(0,-200*Fenster.GetFrameTime());
Fenster.Draw(*SchussIt);
if(SchussIt->GetPosition().y < 20)
{
SchussIt = lSchuss.erase(SchussIt);
ends = lSchuss.end();
}
else
{
++SchussIt;
}
}
//Gegner Zeichnen
for(std::list<sf::Sprite>::iterator GegnerIt = lGegner.begin();GegnerIt != endg;)
{
Fenster.Draw(*GegnerIt);
if((SchussIt->GetPosition().y == GegnerIt->GetPosition().y) && (SchussIt->GetPosition().x == GegnerIt->GetPosition().x))
{
GegnerIt = lGegner.erase(GegnerIt);
endg = lGegner.end();
}
else
{
++GegnerIt;
}
}
Fenster.Draw(sRaumschiff1);
//.Fenster wird angezeigt.//
Fenster.Display();
//______//
}//ende Hauptschleife
}//end Hauptmenü
Ich habe echt keine Ahnung was da falsch ist??
Und tipps was ich eventuell vereinfachen könnte nehme ich auch entgegen :)!!