Du beziehst es jetzt darauf, dass ich die Parameterübergabe in der Init Funktion mache und der Initialisierungsteil nur einmal pro Spielstart ausgeführt wird oder? Wobei ich im Endeffekt trotzdem eine Zeiger habe, der auf das Spieler-Objekt zeigt. Da ich mir dann jedes Mal über die Enemy::Update() Funktion die Enemy:EnemyShot() ausführe und dort auch das Rect vom Spieler hole, dürfte es immer aktuell sein:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// EnemyShot
//
// Aufgabe: Schuss des Gegners abfeuern, wenn Spieler in Reichweite
//
void CEnemy::EnemyShot()
{
// Schuss des Gegners steuern:
SDL_Rect RectPlayer;
RectPlayer = m_pPlayer->GetRect();
if (RectPlayer.x < m_Rect.x)
for (int i = 0; i<2; ++i)
{
if (i==1)
m_bShotLock = false;
else if (i==2)
m_bShotLock = true;
}
else
m_bShotLock = true;
} // EnemyShot
|
Merkwürdig auch, dass je schneller der Gegner animiert wird, desto weniger schießt er, weil die Werte ungenau werden
trotz casten in int