#include #include "C_Block.h" #define FADE_DURATION 500 C_Block::C_Block(char* f_strFileName) : C_3DObject(f_strFileName), m_CurrState(IDLE), m_uiAnimStart(0) { } void C_Block::Draw(unsigned int f_iElapsedTime) { unsigned int l_uiDeltaTime = f_iElapsedTime - m_uiAnimStart; double l_Scale = 0.0; if (l_uiDeltaTime > g_BlockAnimDurations[(int)m_CurrState]) { m_CurrState = IDLE; } glPushMatrix(); TransRotateScale(); switch (m_CurrState) { case FADE_IN: l_Scale = (double)l_uiDeltaTime / (double)g_BlockAnimDurations[FADE_IN]; glScaled(l_Scale, l_Scale, l_Scale); C_3DObject::Draw(); break; case FADE_OUT: l_Scale = 1.0 - ((double)l_uiDeltaTime / (double)g_BlockAnimDurations[FADE_OUT]); glScaled(l_Scale, l_Scale, l_Scale); C_3DObject::Draw(); break; case COLLIDE: break; case IDLE: default: C_3DObject::Draw(); break; } glPopMatrix(); }