Advertisement
Guest User

main.cpp

a guest
Apr 15th, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.65 KB | None | 0 0
  1. // SFML libs
  2. #include <SFML/Graphics.hpp>
  3.  
  4. // My stuff
  5. #include <util/structures.h>
  6. #include <ScaledBuffer.h>
  7. #include <BaseClasses.h>
  8. #include <f3d_model.h>
  9.  
  10. #define SCREEN_SCALE 2
  11.  
  12. int main(int argc, char const *argv[])
  13. {
  14.     // Window Creation
  15.     char windowTitle[255];
  16.     sf::RenderWindow window(sf::VideoMode(200 * SCREEN_SCALE,
  17.                                           200 * SCREEN_SCALE),
  18.                             "Game", sf::Style::Close);
  19.  
  20.     window.setFramerateLimit(60);
  21.     window.setVerticalSyncEnabled(true);
  22.  
  23.     // RenderTexture
  24.     sf::RenderTexture renderTexture;
  25.     if (!renderTexture.create(200, 200))
  26.         return -1;
  27.    
  28.     // Quad class to scale the RenderTexture
  29.     ScaledBuffer scaledBuffer(200, 200, SCREEN_SCALE);
  30.  
  31.     // Timers
  32.     sf::Clock deltaClock;
  33.     sf::Time dt;
  34.     float Framerate = 0;
  35.  
  36.     List<F3D_model> GameEntities;
  37.     ListNode<F3D_model> *np;
  38.  
  39.  
  40.     // Models
  41.     F3D_model model;
  42.     model.create("assets/house_strip25.png", 25, 40, 40, 50, 50, 20, 20);
  43.  
  44.     F3D_model model2;
  45.     model2.create("assets/house_strip25.png", 25, 40, 40, 150, 50, 20, 20);
  46.    
  47.     printf("\n\n");
  48.     printf("Created with ID: %i\n",GameEntities.add(model));
  49.     printf("Created with ID: %i\n",GameEntities.add(model2));
  50.    
  51.     GameEntities.getNode(1)->data.angle += 60;
  52.    
  53.  
  54.     printf("\n\n");
  55.     printf("Model 1 Address: %p\n",GameEntities.getNode(1));
  56.     printf("Model 2 Address: %p\n",GameEntities.getNode(2));
  57.     printf("----------------\n");
  58.     printf("Model 1 Data: %i\n",GameEntities.getNode(1)->data.angle);
  59.     printf("Model 2 Data: %i\n",GameEntities.getNode(2)->data.angle);
  60.     printf("----------------\n");
  61.     printf("Tail ID: %i\n",(GameEntities.tail->id));
  62.     printf("Tail Data: %i\n",(GameEntities.tail->data.angle));
  63.     printf("Tail Address: %p\n",(GameEntities.tail));
  64.     printf("----------------\n");
  65.  
  66.  
  67.  
  68.  
  69.    
  70.  
  71.     while (window.isOpen())
  72.     {
  73.  
  74.         /* Events */
  75.         sf::Event event;
  76.         while (window.pollEvent(event))
  77.         {
  78.             if (event.type == sf::Event::Closed)
  79.                 window.close();
  80.  
  81.             if (event.type == sf::Event::KeyPressed)
  82.             {
  83.                 // printf("Pressed: %i\n", event.key.code);
  84.                 // TODO: Send event.key.code to the
  85.                 //       entities that need it.
  86.  
  87.                 if (event.key.code == 57) // Space
  88.                 {
  89.  
  90.                     GameEntities.getNode(1)->data.angle += 60;
  91.                     GameEntities.getNode(2)->data.angle += 60;
  92.  
  93.                     printf("\n\n");
  94.                     printf("Pressed button\n");
  95.                     printf("\n");
  96.                     printf("Model 1 Address: %p\n",GameEntities.getNode(1));
  97.                     printf("Model 2 Address: %p\n",GameEntities.getNode(2));
  98.                     printf("----------------\n");
  99.                     printf("Model 1 Data: %i\n",GameEntities.getNode(1)->data.angle);
  100.                     printf("Model 2 Data: %i\n",GameEntities.getNode(2)->data.angle);
  101.                     printf("----------------\n");
  102.                     printf("Tail ID: %i\n",(GameEntities.tail->id));
  103.                     printf("Tail Data: %i\n",(GameEntities.tail->data.angle));
  104.                     printf("Tail Address: %p\n",(GameEntities.tail));
  105.                     printf("----------------\n");
  106.                 }
  107.             }
  108.  
  109.             if (event.type == sf::Event::KeyReleased)
  110.             {
  111.                 // printf("Released: %i\n", event.key.code);
  112.                 // TODO: Send event.key.code to the
  113.                 //       entities that need it.
  114.             }
  115.         }
  116.  
  117.  
  118.         /* Update */
  119.         {
  120.             dt = deltaClock.restart();
  121.  
  122.             // Debug
  123.             Framerate = 1.0f / dt.asSeconds();
  124.             sprintf(windowTitle, "FPS: %2.0f", Framerate);
  125.             window.setTitle(windowTitle);
  126.  
  127.             // Update Entities
  128.             // model.update();
  129.             GameEntities.getNode(1)->data.update();
  130.             GameEntities.getNode(2)->data.update();
  131.         }
  132.  
  133.         /* Draw */
  134.         {
  135.  
  136.             // Draw entities to the renderTexture
  137.             renderTexture.clear();
  138.             // renderTexture.draw(model);
  139.             renderTexture.draw(GameEntities.getNode(1)->data);
  140.             renderTexture.draw(GameEntities.getNode(2)->data);
  141.  
  142.             renderTexture.display();
  143.            
  144.             scaledBuffer.update(renderTexture.getTexture());
  145.  
  146.             // Draw to the actual window.
  147.             window.clear();
  148.             window.draw(scaledBuffer);
  149.             window.display();
  150.         }
  151.     }
  152.  
  153.     return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement