Advertisement
ToastyStoemp

Animation CPlusPlus File by Wolf Van Herreweghe

Oct 13th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.59 KB | None | 0 0
  1. //-----------------------------------------------------------------
  2. // Game File
  3. // C++ Source - Animation.cpp - version v2_12 jan 2013
  4. // Copyright Kevin Hoefman - kevin.hoefman@howest.be
  5. // http://www.digitalartsandentertainment.be/
  6. //-----------------------------------------------------------------
  7.  
  8. //-----------------------------------------------------------------
  9. // Include Files
  10. //-----------------------------------------------------------------
  11. #include "Animation.h"
  12. #define _USE_MATh_DEFines
  13. #include <math.h>
  14.  
  15. //-----------------------------------------------------------------
  16. // Defines
  17. //-----------------------------------------------------------------
  18. #define GAME_ENGINE (GameEngine::GetSingleton())
  19.  
  20. //-----------------------------------------------------------------
  21. // Animation methods                                                                               
  22. //-----------------------------------------------------------------
  23.  
  24. Animation::Animation(): m_X1(140), m_Y1(140), m_Length(100), m_Angle(0),
  25.     m_X2(240), m_Y2(140), m_PentaCentrum_X(140), m_PentaCentrum_Y(340),
  26.     m_Punt1_X(440), m_Punt1_Y(340), m_Punt2_X(0), m_Punt2_Y(0),
  27.     m_Punt3_X(0), m_Punt3_Y(0), m_Punt4_X(0), m_Punt4_Y(0),
  28.     m_Punt5_X(0), m_Punt5_Y(0), m_CircusCentrum_X(450), m_CircusCentrum_Y(235),
  29.     m_CircusRadius(50), m_CircusPunt1_X(440), m_CircusPunt1_Y(340), m_CircusPunt2_X(0), m_CircusPunt2_Y(0),
  30.     m_CircusPunt3_X(0), m_CircusPunt3_Y(0), m_CircusPunt4_X(0), m_CircusPunt4_Y(0),
  31.     m_CircusPunt5_X(0), m_CircusPunt5_Y(0), m_CircusPunt6_X(0), m_CircusPunt6_Y(0),
  32.     m_MiniCircusCentrum_X(450), m_MiniCircusCentrum_Y(235),
  33.     m_MiniCircusRadius(30), m_MiniCircusPunt1_X(440), m_MiniCircusPunt1_Y(340), m_MiniCircusPunt2_X(0), m_MiniCircusPunt2_Y(0),
  34.     m_MiniCircusPunt3_X(0), m_MiniCircusPunt3_Y(0), m_MiniCircusPunt4_X(0), m_MiniCircusPunt4_Y(0),
  35.     m_MiniCircusPunt5_X(0), m_MiniCircusPunt5_Y(0), m_MiniCircusPunt6_X(0), m_MiniCircusPunt6_Y(0)
  36. {
  37.     // nothing to create
  38. }
  39.  
  40. Animation::~Animation()                                                                                    
  41. {
  42.     // nothing to destroy
  43. }
  44.  
  45. void Animation::GameInitialize(HINSTANCE hInstance)        
  46. {
  47.     // Set the required values
  48.     AbstractGame::GameInitialize(hInstance);
  49.     GAME_ENGINE->SetTitle("Animation - Van Herreweghe Wolf - 1DEA3");                  
  50.     GAME_ENGINE->RunGameLoop(true);
  51.    
  52.     // Set the optional values
  53.     GAME_ENGINE->SetWidth(640);
  54.     GAME_ENGINE->SetHeight(480);
  55.     //GAME_ENGINE->SetKeyList(String("QSDZ") + (TCHAR) VK_SPACE);
  56. }
  57.  
  58. void Animation::GameStart()
  59. {
  60.     // Insert the code that needs to be executed at the start of the game
  61. }
  62.  
  63. void Animation::GameEnd()
  64. {
  65.     // Insert the code that needs to be executed at the closing of the game
  66. }
  67.  
  68. void Animation::MouseButtonAction(bool isLeft, bool isDown, int x, int y, WPARAM wParam)
  69. {  
  70.     // Insert the code that needs to be executed when the game registers a mouse button action
  71.  
  72.     /* Example:
  73.     if (isLeft == true && isDown == true) // is it a left mouse click?
  74.     {  
  75.         if ( x > 261 && x < 261 + 117 ) // check if click lies within x coordinates of choice
  76.         {
  77.             if ( y > 182 && y < 182 + 33 ) // check if click also lies within y coordinates of choice
  78.             {
  79.                 GAME_ENGINE->MessageBox("Clicked.");
  80.             }
  81.         }
  82.     }
  83.     */
  84. }
  85.  
  86. void Animation::MouseMove(int x, int y, WPARAM wParam)
  87. {  
  88.     // Insert the code that needs to be executed when the mouse pointer moves across the game window
  89.  
  90.     /* Example:
  91.     if ( x > 261 && x < 261 + 117 ) // check if mouse position is within x coordinates of choice
  92.     {
  93.         if ( y > 182 && y < 182 + 33 ) // check if mouse position also is within y coordinates of choice
  94.         {
  95.             GAME_ENGINE->MessageBox("Da mouse wuz here.");
  96.         }
  97.     }
  98.     */
  99.  
  100. }
  101.  
  102. void Animation::CheckKeyboard()
  103. {  
  104.     // Here you can check if a key of choice is held down
  105.     // Is executed once per frame when the gameloop is running
  106.  
  107.     /* Example:
  108.     if (GAME_ENGINE->IsKeyDown('K')) xIcon -= xSpeed;
  109.     if (GAME_ENGINE->IsKeyDown('L')) yIcon += xSpeed;
  110.     if (GAME_ENGINE->IsKeyDown('M')) xIcon += xSpeed;
  111.     if (GAME_ENGINE->IsKeyDown('O')) yIcon -= ySpeed;
  112.     */
  113. }
  114.  
  115. void Animation::KeyPressed(TCHAR cKey)
  116. {  
  117.     // DO NOT FORGET to use SetKeyList() !!
  118.  
  119.     // Insert the code that needs to be executed when a key of choice is pressed
  120.     // Is executed as soon as the key is released
  121.     // You first need to specify the keys that the game engine needs to watch by using the SetKeyList() method
  122.  
  123.     /* Example:
  124.     switch (cKey)
  125.     {
  126.     case 'K': case VK_LEFT:
  127.         MoveBlock(DIR_LEFT);
  128.         break;
  129.     case 'L': case VK_DOWN:
  130.         MoveBlock(DIR_DOWN);
  131.         break;
  132.     case 'M': case VK_RIGHT:
  133.         MoveBlock(DIR_RIGHT);
  134.         break;
  135.     case 'A': case VK_UP:
  136.         RotateBlock();
  137.         break;
  138.     case VK_ESCAPE:
  139.     }
  140.     */
  141. }
  142.  
  143. void Animation::GameTick(double deltaTime)
  144. {
  145.    
  146.     m_Angle +=2;
  147.  
  148.     m_X2 = m_X1 + m_Length*sin(m_Angle*M_PI/180); //Calculate the X-Coordinates for the line
  149.     m_Y2 = m_Y1 - m_Length*cos(m_Angle*M_PI/180); //Calculate the Y-Coordinates for the line
  150.  
  151.  
  152.     //Pentagram
  153.     m_Punt1_X = m_PentaCentrum_X + m_Length*sin(m_Angle*M_PI/180); //Calculations for the different points of the rotating pentagram
  154.     m_Punt1_Y = m_PentaCentrum_Y - m_Length*cos(m_Angle*M_PI/180);
  155.  
  156.     m_Punt2_X = m_PentaCentrum_X + m_Length*sin((m_Angle+72)*M_PI/180);
  157.     m_Punt2_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+72)*M_PI/180);
  158.  
  159.     m_Punt3_X = m_PentaCentrum_X + m_Length*sin((m_Angle+144)*M_PI/180);
  160.     m_Punt3_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+144)*M_PI/180);
  161.  
  162.     m_Punt4_X = m_PentaCentrum_X + m_Length*sin((m_Angle+216)*M_PI/180);
  163.     m_Punt4_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+216)*M_PI/180);
  164.  
  165.     m_Punt5_X = m_PentaCentrum_X + m_Length*sin((m_Angle+288)*M_PI/180);
  166.     m_Punt5_Y = m_PentaCentrum_Y - m_Length*cos((m_Angle+288)*M_PI/180);
  167.  
  168.     //MiniCircus
  169.     m_MiniCircusPunt1_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+30)*M_PI/180); //Calculations for the smaller circkles in the collorweel
  170.     m_MiniCircusPunt1_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+30)*M_PI/180);
  171.  
  172.     m_MiniCircusPunt2_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+90)*M_PI/180);
  173.     m_MiniCircusPunt2_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+90)*M_PI/180);
  174.  
  175.     m_MiniCircusPunt3_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+150)*M_PI/180);
  176.     m_MiniCircusPunt3_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+150)*M_PI/180);
  177.  
  178.     m_MiniCircusPunt4_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+210)*M_PI/180);
  179.     m_MiniCircusPunt4_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+210)*M_PI/180);
  180.  
  181.     m_MiniCircusPunt5_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+270)*M_PI/180);
  182.     m_MiniCircusPunt5_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+270)*M_PI/180);
  183.  
  184.     m_MiniCircusPunt6_X = m_MiniCircusCentrum_X + m_Length*sin((m_Angle+330)*M_PI/180);
  185.     m_MiniCircusPunt6_Y = m_MiniCircusCentrum_Y - m_Length*cos((m_Angle+330)*M_PI/180);
  186.  
  187.     //Circus
  188.     m_CircusPunt1_X = m_CircusCentrum_X + m_Length*sin(m_Angle*M_PI/180); //Calculations for the bigger circles in the collorweel
  189.     m_CircusPunt1_Y = m_CircusCentrum_Y - m_Length*cos(m_Angle*M_PI/180);
  190.  
  191.     m_CircusPunt2_X = m_CircusCentrum_X + m_Length*sin((m_Angle+60)*M_PI/180);
  192.     m_CircusPunt2_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+60)*M_PI/180);
  193.  
  194.     m_CircusPunt3_X = m_CircusCentrum_X + m_Length*sin((m_Angle+120)*M_PI/180);
  195.     m_CircusPunt3_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+120)*M_PI/180);
  196.  
  197.     m_CircusPunt4_X = m_CircusCentrum_X + m_Length*sin((m_Angle+180)*M_PI/180);
  198.     m_CircusPunt4_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+180)*M_PI/180);
  199.  
  200.     m_CircusPunt5_X = m_CircusCentrum_X + m_Length*sin((m_Angle+240)*M_PI/180);
  201.     m_CircusPunt5_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+240)*M_PI/180);
  202.  
  203.     m_CircusPunt6_X = m_CircusCentrum_X + m_Length*sin((m_Angle+300)*M_PI/180);
  204.     m_CircusPunt6_Y = m_CircusCentrum_Y - m_Length*cos((m_Angle+300)*M_PI/180);
  205.  
  206. }
  207.  
  208. void Animation::GamePaint(RECT rect)
  209. {
  210.     GAME_ENGINE->DrawSolidBackground(230,230,170); //Draw a solid background collor
  211.     GAME_ENGINE->SetColor(COLOR(90,90,90)); //Set a gray collor for the line
  212.     GAME_ENGINE->DrawLine(m_X1,m_Y1,m_X2,m_Y2); //Draw the line
  213.  
  214.     //Pentagram
  215.     GAME_ENGINE->SetColor(COLOR(20,90,0)); //Set collor for the pentagram big circkle
  216.     GAME_ENGINE->FillEllipse(m_PentaCentrum_X,m_PentaCentrum_Y,105,105); //Draw the Big Circkle
  217.     GAME_ENGINE->SetColor(COLOR(230,230,170)); //Set the collor for the inner circle
  218.     GAME_ENGINE->FillEllipse(m_PentaCentrum_X,m_PentaCentrum_Y,100,100); //Draw the inner circkle
  219.     GAME_ENGINE->SetColor(COLOR(20,90,0)); //Set collor for the pentagram lines
  220.     GAME_ENGINE->DrawLine(m_Punt1_X,m_Punt1_Y,m_Punt3_X,m_Punt3_Y); //Draw the pentagram lines
  221.     GAME_ENGINE->DrawLine(m_Punt1_X,m_Punt1_Y,m_Punt4_X,m_Punt4_Y);
  222.  
  223.     GAME_ENGINE->DrawLine(m_Punt2_X,m_Punt2_Y,m_Punt4_X,m_Punt4_Y);
  224.     GAME_ENGINE->DrawLine(m_Punt2_X,m_Punt2_Y,m_Punt5_X,m_Punt5_Y);
  225.  
  226.     GAME_ENGINE->DrawLine(m_Punt3_X,m_Punt3_Y,m_Punt5_X,m_Punt5_Y);
  227.  
  228.     //MiniCircus
  229.     GAME_ENGINE->SetColor(COLOR(255,128,0)); //Set collor for the Circkle
  230.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt1_X, m_MiniCircusPunt1_Y, m_MiniCircusRadius, m_MiniCircusRadius); //Draw the Circkle
  231.     GAME_ENGINE->SetColor(COLOR(255,0,128));
  232.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt2_X, m_MiniCircusPunt2_Y, m_MiniCircusRadius, m_MiniCircusRadius);
  233.     GAME_ENGINE->SetColor(COLOR(128,0,255));
  234.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt3_X, m_MiniCircusPunt3_Y, m_MiniCircusRadius, m_MiniCircusRadius);
  235.     GAME_ENGINE->SetColor(COLOR(0,128,255));
  236.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt4_X, m_MiniCircusPunt4_Y, m_MiniCircusRadius, m_MiniCircusRadius);
  237.     GAME_ENGINE->SetColor(COLOR(0,255,128));
  238.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt5_X, m_MiniCircusPunt5_Y, m_MiniCircusRadius, m_MiniCircusRadius);
  239.     GAME_ENGINE->SetColor(COLOR(128,255,0));
  240.     GAME_ENGINE->FillEllipse(m_MiniCircusPunt6_X, m_MiniCircusPunt6_Y, m_MiniCircusRadius, m_MiniCircusRadius);
  241.  
  242.     //Circus
  243.     GAME_ENGINE->SetColor(COLOR(255,255,0));
  244.     GAME_ENGINE->FillEllipse(m_CircusPunt1_X, m_CircusPunt1_Y, m_CircusRadius, m_CircusRadius);
  245.     GAME_ENGINE->SetColor(COLOR(255,0,0));
  246.     GAME_ENGINE->FillEllipse(m_CircusPunt2_X, m_CircusPunt2_Y, m_CircusRadius, m_CircusRadius);
  247.     GAME_ENGINE->SetColor(COLOR(255,0,255));
  248.     GAME_ENGINE->FillEllipse(m_CircusPunt3_X, m_CircusPunt3_Y, m_CircusRadius, m_CircusRadius);
  249.     GAME_ENGINE->SetColor(COLOR(0,0,255));
  250.     GAME_ENGINE->FillEllipse(m_CircusPunt4_X, m_CircusPunt4_Y, m_CircusRadius, m_CircusRadius);
  251.     GAME_ENGINE->SetColor(COLOR(0,255,255));
  252.     GAME_ENGINE->FillEllipse(m_CircusPunt5_X, m_CircusPunt5_Y, m_CircusRadius, m_CircusRadius);
  253.     GAME_ENGINE->SetColor(COLOR(0,255,0));
  254.     GAME_ENGINE->FillEllipse(m_CircusPunt6_X, m_CircusPunt6_Y, m_CircusRadius, m_CircusRadius);
  255.  
  256.  
  257. }
  258.  
  259. void Animation::CallAction(Caller* callerPtr)
  260. {
  261.     // Insert the code that needs to be executed when a Caller has to perform an action
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement