summaryrefslogtreecommitdiffstats
path: root/MatchBloxEngine/MatchBloxEngine/C_Block.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'MatchBloxEngine/MatchBloxEngine/C_Block.cpp')
-rw-r--r--MatchBloxEngine/MatchBloxEngine/C_Block.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/MatchBloxEngine/MatchBloxEngine/C_Block.cpp b/MatchBloxEngine/MatchBloxEngine/C_Block.cpp
new file mode 100644
index 0000000..46d7621
--- /dev/null
+++ b/MatchBloxEngine/MatchBloxEngine/C_Block.cpp
@@ -0,0 +1,49 @@
+#include <GL\glut.h>
+#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();
+} \ No newline at end of file