Also...
In PlayState wird der Player nicht erstellt (Ist der in Asteroid.cpp gelandet wegen debuggen?), husch husch zurück damit in PlayState!
Dann empfehle ich dir, den Konstruktor einer Klasse zu nutzen und auf Init Methoden zu verzichten.
Da könntest du dann nämlich dem Asteroiden mitgeben um welchen x Wert er spawnen soll.
|
C-/C++-Quelltext
|
1
|
Asteroid(int playerPositionX)
|
Bei deinem Aktuellem Design musst du den X Wert des Players entweder beim erstellen des Asteroiden speichern (in der Asteroiden Klasse) was aus meiner Sicht blödsinn ist (bei anderem/besserem Design).
Oder der InitMethode und dann der loadAsteroid den X Wert des Players mitgeben.
|
C-/C++-Quelltext
|
1
2
|
void Init(Game &game, int playerPositionX);
void loadAsteroid(Game &game, int playerPositionX);
|
Noch paar tips zu Design.
- Konstruktor nutzen statt Init-Methode
- Klassenmember private halten (Datenkapselung)
- ChangeState Methode dringend überarbeiten, du erstellts immer einen ganz neuen State anstatt wie die Methode vermuten lassen würde ihn zu wechseln.
- gibt noch andere Sachen aber bin zu Faul das jetzt alles nieder zu schreiben