Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------------
- // Game File
- // C++ Source - Animation.cpp - version v2_12 jan 2013
- // Copyright Kevin Hoefman - kevin.hoefman@howest.be
- // http://www.digitalartsandentertainment.be/
- //-----------------------------------------------------------------
- //-----------------------------------------------------------------
- // Include Files
- //-----------------------------------------------------------------
- #include "Animation.h"
- #define _USE_MATh_DEFines
- #include <math.h>
- //-----------------------------------------------------------------
- // Defines
- //-----------------------------------------------------------------
- #define GAME_ENGINE (GameEngine::GetSingleton())
- //-----------------------------------------------------------------
- // Animation methods
- //-----------------------------------------------------------------
- Animation::Animation(): m_X1(140), m_Y1(140), m_Length(100), m_Angle(0),
- m_X2(240), m_Y2(140), m_PentaCentrum_X(140), m_PentaCentrum_Y(340),
- m_Punt1_X(440), m_Punt1_Y(340), m_Punt2_X(0), m_Punt2_Y(0),
- m_Punt3_X(0), m_Punt3_Y(0), m_Punt4_X(0), m_Punt4_Y(0),
- m_Punt5_X(0), m_Punt5_Y(0), m_CircusCentrum_X(450), m_CircusCentrum_Y(235),
- m_CircusRadius(50), m_CircusPunt1_X(440), m_CircusPunt1_Y(340), m_CircusPunt2_X(0), m_CircusPunt2_Y(0),
- m_CircusPunt3_X(0), m_CircusPunt3_Y(0), m_CircusPunt4_X(0), m_CircusPunt4_Y(0),
- m_CircusPunt5_X(0), m_CircusPunt5_Y(0), m_CircusPunt6_X(0), m_CircusPunt6_Y(0),
- m_MiniCircusCentrum_X(450), m_MiniCircusCentrum_Y(235),
- m_MiniCircusRadius(30), m_MiniCircusPunt1_X(440), m_MiniCircusPunt1_Y(340), m_MiniCircusPunt2_X(0), m_MiniCircusPunt2_Y(0),
- m_MiniCircusPunt3_X(0), m_MiniCircusPunt3_Y(0), m_MiniCircusPunt4_X(0), m_MiniCircusPunt4_Y(0),
- m_MiniCircusPunt5_X(0), m_MiniCircusPunt5_Y(0), m_MiniCircusPunt6_X(0), m_MiniCircusPunt6_Y(0)
- {
- // nothing to create
- }
- Animation::~Animation()
- {
- // nothing to destroy
- }
- void Animation::GameInitialize(HINSTANCE hInstance)
- {
- // Set the required values
- AbstractGame::GameInitialize(hInstance);
- GAME_ENGINE->SetTitle("Animation - Van Herreweghe Wolf - 1DEA3");
- GAME_ENGINE->RunGameLoop(true);
- // Set the optional values
- GAME_ENGINE->SetWidth(640);
- GAME_ENGINE->SetHeight(480);
- //GAME_ENGINE->SetKeyList(String("QSDZ") + (TCHAR) VK_SPACE);
- }
- void Animation::GameStart()
- {
- // Insert the code that needs to be executed at the start of the game
- }
- void Animation::GameEnd()
- {
- // Insert the code that needs to be executed at the closing of the game
- }
- void Animation::MouseButtonAction(bool isLeft, bool isDown, int x, int y, WPARAM wParam)
- {
- // Insert the code that needs to be executed when the game registers a mouse button action
- /* Example:
- if (isLeft == true && isDown == true) // is it a left mouse click?
- {
- if ( x > 261 && x < 261 + 117 ) // check if click lies within x coordinates of choice
- {
- if ( y > 182 && y < 182 + 33 ) // check if click also lies within y coordinates of choice
- {
- GAME_ENGINE->MessageBox("Clicked.");
- }
- }
- }
- */
- }
- void Animation::MouseMove(int x, int y, WPARAM wParam)
- {
- // Insert the code that needs to be executed when the mouse pointer moves across the game window
- /* Example:
- if ( x > 261 && x < 261 + 117 ) // check if mouse position is within x coordinates of choice
- {
- if ( y > 182 && y < 182 + 33 ) // check if mouse position also is within y coordinates of choice
- {
- GAME_ENGINE->MessageBox("Da mouse wuz here.");
- }
- }
- */
- }
- void Animation::CheckKeyboard()
- {
- // Here you can check if a key of choice is held down
- // Is executed once per frame when the gameloop is running
- /* Example:
- if (GAME_ENGINE->IsKeyDown('K')) xIcon -= xSpeed;
- if (GAME_ENGINE->IsKeyDown('L')) yIcon += xSpeed;
- if (GAME_ENGINE->IsKeyDown('M')) xIcon += xSpeed;
- if (GAME_ENGINE->IsKeyDown('O')) yIcon -= ySpeed;
- */
- }
- void Animation::KeyPressed(TCHAR cKey)
- {
- // DO NOT FORGET to use SetKeyList() !!
- // Insert the code that needs to be executed when a key of choice is pressed
- // Is executed as soon as the key is released
- // You first need to specify the keys that the game engine needs to watch by using the SetKeyList() method
- /* Example:
- switch (cKey)
- {
- case 'K': case VK_LEFT:
- MoveBlock(DIR_LEFT);
- break;
- case 'L': case VK_DOWN:
- MoveBlock(DIR_DOWN);
- break;
- case 'M': case VK_RIGHT:
- MoveBlock(DIR_RIGHT);
- break;
- case 'A': case VK_UP:
- RotateBlock();
- break;
- case VK_ESCAPE:
- }
- */
- }
- void Animation::GameTick(double deltaTime)
- {
- m_Angle +=2;
- m_X2 = m_X1 + m_Length*sin(m_Angle*M_PI/180); //Calculate the X-Coordinates for the line
- m_Y2 = m_Y1 - m_Length*cos(m_Angle*M_PI/180); //Calculate the Y-Coordinates for the line
- //Pentagram
- m_Punt1_X = m_PentaCentrum_X + m_Length*sin(m_Angle*M_PI/180); //Calculations for the different points of the rotating pentagram
- m_Punt1_Y = m_PentaCentrum_Y - m_Length*cos(m_Angle*M_PI/180);
- m_Punt2_X = m_PentaCentrum_X + m_Length*sin((m_Angle+72)*M_PI/180);
- m_Punt2_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+72)*M_PI/180);
- m_Punt3_X = m_PentaCentrum_X + m_Length*sin((m_Angle+144)*M_PI/180);
- m_Punt3_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+144)*M_PI/180);
- m_Punt4_X = m_PentaCentrum_X + m_Length*sin((m_Angle+216)*M_PI/180);
- m_Punt4_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+216)*M_PI/180);
- m_Punt5_X = m_PentaCentrum_X + m_Length*sin((m_Angle+288)*M_PI/180);
- m_Punt5_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+288)*M_PI/180);
- //MiniCircus
- m_MiniCircusPunt1_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+30)*M_PI/180); //Calculations for the smaller circkles in the collorweel
- m_MiniCircusPunt1_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+30)*M_PI/180);
- m_MiniCircusPunt2_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+90)*M_PI/180);
- m_MiniCircusPunt2_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+90)*M_PI/180);
- m_MiniCircusPunt3_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+150)*M_PI/180);
- m_MiniCircusPunt3_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+150)*M_PI/180);
- m_MiniCircusPunt4_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+210)*M_PI/180);
- m_MiniCircusPunt4_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+210)*M_PI/180);
- m_MiniCircusPunt5_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+270)*M_PI/180);
- m_MiniCircusPunt5_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+270)*M_PI/180);
- m_MiniCircusPunt6_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+330)*M_PI/180);
- m_MiniCircusPunt6_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+330)*M_PI/180);
- //Circus
- m_CircusPunt1_X = m_CircusCentrum_X + m_Length*sin(m_Angle*M_PI/180); //Calculations for the bigger circles in the collorweel
- m_CircusPunt1_Y = m_CircusCentrum_Y - m_Length*cos(m_Angle*M_PI/180);
- m_CircusPunt2_X = m_CircusCentrum_X + m_Length*sin((m_Angle+60)*M_PI/180);
- m_CircusPunt2_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+60)*M_PI/180);
- m_CircusPunt3_X = m_CircusCentrum_X + m_Length*sin((m_Angle+120)*M_PI/180);
- m_CircusPunt3_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+120)*M_PI/180);
- m_CircusPunt4_X = m_CircusCentrum_X + m_Length*sin((m_Angle+180)*M_PI/180);
- m_CircusPunt4_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+180)*M_PI/180);
- m_CircusPunt5_X = m_CircusCentrum_X + m_Length*sin((m_Angle+240)*M_PI/180);
- m_CircusPunt5_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+240)*M_PI/180);
- m_CircusPunt6_X = m_CircusCentrum_X + m_Length*sin((m_Angle+300)*M_PI/180);
- m_CircusPunt6_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+300)*M_PI/180);
- }
- void Animation::GamePaint(RECT rect)
- {
- GAME_ENGINE->DrawSolidBackground(230,230,170); //Draw a solid background collor
- GAME_ENGINE->SetColor(COLOR(90,90,90)); //Set a gray collor for the line
- GAME_ENGINE->DrawLine(m_X1,m_Y1,m_X2,m_Y2); //Draw the line
- //Pentagram
- GAME_ENGINE->SetColor(COLOR(20,90,0)); //Set collor for the pentagram big circkle
- GAME_ENGINE->FillEllipse(m_PentaCentrum_X,m_PentaCentrum_Y,105,105); //Draw the Big Circkle
- GAME_ENGINE->SetColor(COLOR(230,230,170)); //Set the collor for the inner circle
- GAME_ENGINE->FillEllipse(m_PentaCentrum_X,m_PentaCentrum_Y,100,100); //Draw the inner circkle
- GAME_ENGINE->SetColor(COLOR(20,90,0)); //Set collor for the pentagram lines
- GAME_ENGINE->DrawLine(m_Punt1_X,m_Punt1_Y,m_Punt3_X,m_Punt3_Y); //Draw the pentagram lines
- GAME_ENGINE->DrawLine(m_Punt1_X,m_Punt1_Y,m_Punt4_X,m_Punt4_Y);
- GAME_ENGINE->DrawLine(m_Punt2_X,m_Punt2_Y,m_Punt4_X,m_Punt4_Y);
- GAME_ENGINE->DrawLine(m_Punt2_X,m_Punt2_Y,m_Punt5_X,m_Punt5_Y);
- GAME_ENGINE->DrawLine(m_Punt3_X,m_Punt3_Y,m_Punt5_X,m_Punt5_Y);
- //MiniCircus
- GAME_ENGINE->SetColor(COLOR(255,128,0)); //Set collor for the Circkle
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt1_X, m_MiniCircusPunt1_Y, m_MiniCircusRadius, m_MiniCircusRadius); //Draw the Circkle
- GAME_ENGINE->SetColor(COLOR(255,0,128));
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt2_X, m_MiniCircusPunt2_Y, m_MiniCircusRadius, m_MiniCircusRadius);
- GAME_ENGINE->SetColor(COLOR(128,0,255));
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt3_X, m_MiniCircusPunt3_Y, m_MiniCircusRadius, m_MiniCircusRadius);
- GAME_ENGINE->SetColor(COLOR(0,128,255));
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt4_X, m_MiniCircusPunt4_Y, m_MiniCircusRadius, m_MiniCircusRadius);
- GAME_ENGINE->SetColor(COLOR(0,255,128));
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt5_X, m_MiniCircusPunt5_Y, m_MiniCircusRadius, m_MiniCircusRadius);
- GAME_ENGINE->SetColor(COLOR(128,255,0));
- GAME_ENGINE->FillEllipse(m_MiniCircusPunt6_X, m_MiniCircusPunt6_Y, m_MiniCircusRadius, m_MiniCircusRadius);
- //Circus
- GAME_ENGINE->SetColor(COLOR(255,255,0));
- GAME_ENGINE->FillEllipse(m_CircusPunt1_X, m_CircusPunt1_Y, m_CircusRadius, m_CircusRadius);
- GAME_ENGINE->SetColor(COLOR(255,0,0));
- GAME_ENGINE->FillEllipse(m_CircusPunt2_X, m_CircusPunt2_Y, m_CircusRadius, m_CircusRadius);
- GAME_ENGINE->SetColor(COLOR(255,0,255));
- GAME_ENGINE->FillEllipse(m_CircusPunt3_X, m_CircusPunt3_Y, m_CircusRadius, m_CircusRadius);
- GAME_ENGINE->SetColor(COLOR(0,0,255));
- GAME_ENGINE->FillEllipse(m_CircusPunt4_X, m_CircusPunt4_Y, m_CircusRadius, m_CircusRadius);
- GAME_ENGINE->SetColor(COLOR(0,255,255));
- GAME_ENGINE->FillEllipse(m_CircusPunt5_X, m_CircusPunt5_Y, m_CircusRadius, m_CircusRadius);
- GAME_ENGINE->SetColor(COLOR(0,255,0));
- GAME_ENGINE->FillEllipse(m_CircusPunt6_X, m_CircusPunt6_Y, m_CircusRadius, m_CircusRadius);
- }
- void Animation::CallAction(Caller* callerPtr)
- {
- // Insert the code that needs to be executed when a Caller has to perform an action
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement