#include "Enterprise_Explosion.hpp"
// Init
//
// Aufgabe: Raumschiff initialisieren
//
void CEnterpriseBoom::Init (CSprite *pSpriteEnterpriseBoom, float fXPos, float fYPos)
{
// Zeiger auf Sprite kopieren und Koordinaten setzen
m_pSpriteEnterpriseBoom = pSpriteEnterpriseBoom;
m_fXPos = fXPos;
m_fYPos = fYPos;
// Rect initialisieren
m_Rect.x = static_cast<int>(fXPos);
m_Rect.y = static_cast<int>(fYPos);
m_Rect.w = pSpriteEnterpriseBoom->GetRect().w;
m_Rect.h = pSpriteEnterpriseBoom->GetRect().h;
// Animation beginnt beim ersten Einzelbild
m_fAnimPhase = 0.0f;
// Raumschiff aktivieren
m_bIsAlive = true;
} // Init
// Update
//
// Aufgabe: Raumschiff bewegen und Position prüfen
//
void CEnterpriseBoom::Update ()
{
// Raumschiff bewegen
m_fXPos += 200.0f * g_pTimer->GetElapsed ();
m_Rect.x = static_cast<int>(m_fXPos);
// Animieren
m_fAnimPhase += 20.0f * g_pTimer->GetElapsed ();
// Prüfen, ob die Animation am Ende angelangt ist
if (m_fAnimPhase >= 20.0f)
m_fAnimPhase = m_fAnimPhase - 20.0f;
// Deaktivieren, falls außerhalb des Bildschirms
if (m_fXPos > 800.0f)
m_bIsAlive = false;
} // Update
// Render
//
// Aufgabe: Raumschiff rendern
//
void CEnterpriseBoom::Render ()
{
if (m_bIsAlive == true)
{
// Koordinaten setzen und rendern
m_pSpriteEnterpriseBoom->SetPos (m_fXPos, m_fYPos);
m_pSpriteEnterpriseBoom->Render (m_fAnimPhase);
}
} // Render