Advertisement
Guest User

Animation.ccp

a guest
Jul 3rd, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #include "Animation.h"
  2.  
  3. Animation::Animation(std::string player, std::string anim, int dir, int frame, int delay, sf::Vector2i size) : m_path("Ressources/Images/" + player + "/" + anim + "/"), m_dir(dir), m_frame(frame), m_delay(delay), m_index(0), m_size(size)
  4. {
  5.     for (int i = 0; i < 4; i++) {
  6.         for (int j = 0; j < m_frame; j++) {
  7.             sf::Image img;
  8.             if (i == 0) {
  9.                 if (!img.loadFromFile(m_path + "UP_0" + std::to_string(j) + ".png"))
  10.                     std::cout << "Error loading character" << std::endl;
  11.  
  12.                 m_frameUP.push_back(img);
  13.             }
  14.             if (i == 1) {
  15.                 if (!img.loadFromFile(m_path + "RI_0" + std::to_string(j) + ".png"))
  16.                     std::cout << "Error loading character" << std::endl;
  17.  
  18.                 m_frameRI.push_back(img);
  19.             }
  20.             if (i == 2) {
  21.                 if (!img.loadFromFile(m_path + "DO_0" + std::to_string(j) + ".png"))
  22.                     std::cout << "Error loading character" << std::endl;
  23.  
  24.                 m_frameDO.push_back(img);
  25.             }
  26.             if (i == 3) {
  27.                 if (!img.loadFromFile(m_path + "LE_0" + std::to_string(j) + ".png"))
  28.                     std::cout << "Error loading character" << std::endl;
  29.  
  30.                 m_frameLE.push_back(img);
  31.             }
  32.  
  33.  
  34.         }
  35.     }
  36.  
  37.     if(!m_texture.create(m_size.x, m_size.y))
  38.         std::cout << "Error loading character" << std::endl;
  39.  
  40.  
  41.  
  42. }
  43.  
  44. void Animation::update(sf::Clock &clock)
  45. {
  46.     if (clock.getElapsedTime().asMilliseconds() >= m_delay) {
  47.  
  48.         clock.restart();
  49.  
  50.         m_index++;
  51.         if (m_index < m_frame)
  52.             m_index = 0;
  53.  
  54.  
  55.         switch (m_dir)
  56.         {
  57.         case 0:
  58.             m_texture.update(m_frameUP[m_index]);
  59.             break;
  60.         case 1:
  61.             m_texture.update(m_frameRI[m_index]);
  62.             break;
  63.         case 2:
  64.             m_texture.update(m_frameDO[m_index]);
  65.             break;
  66.         case 3:
  67.             m_texture.update(m_frameLE[m_index]);
  68.             break;
  69.  
  70.         default:
  71.             m_texture.update(m_frameUP[m_index]);
  72.             break;
  73.         }
  74.  
  75.     }
  76.  
  77.  
  78.  
  79. }
  80.  
  81. void Animation::draw(sf::RenderTarget & target, sf::RenderStates states) const
  82. {
  83.  
  84.    
  85.     // on applique la transformation de l'entité -- on la combine avec celle qui a été passée par l'appelant
  86.     states.transform *= getTransform(); // getTransform() est définie par sf::Transformable
  87.  
  88.                                         // on applique la texture
  89.     states.texture = &m_texture;
  90.  
  91.     // on peut aussi surcharger states.shader ou states.blendMode si nécessaire
  92.  
  93.     // on dessine le tableau de vertex
  94.     target.draw(m_sprite, states);
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement