Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Animation.h"
- 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)
- {
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < m_frame; j++) {
- sf::Image img;
- if (i == 0) {
- if (!img.loadFromFile(m_path + "UP_0" + std::to_string(j) + ".png"))
- std::cout << "Error loading character" << std::endl;
- m_frameUP.push_back(img);
- }
- if (i == 1) {
- if (!img.loadFromFile(m_path + "RI_0" + std::to_string(j) + ".png"))
- std::cout << "Error loading character" << std::endl;
- m_frameRI.push_back(img);
- }
- if (i == 2) {
- if (!img.loadFromFile(m_path + "DO_0" + std::to_string(j) + ".png"))
- std::cout << "Error loading character" << std::endl;
- m_frameDO.push_back(img);
- }
- if (i == 3) {
- if (!img.loadFromFile(m_path + "LE_0" + std::to_string(j) + ".png"))
- std::cout << "Error loading character" << std::endl;
- m_frameLE.push_back(img);
- }
- }
- }
- if(!m_texture.create(m_size.x, m_size.y))
- std::cout << "Error loading character" << std::endl;
- }
- void Animation::update(sf::Clock &clock)
- {
- if (clock.getElapsedTime().asMilliseconds() >= m_delay) {
- clock.restart();
- m_index++;
- if (m_index < m_frame)
- m_index = 0;
- switch (m_dir)
- {
- case 0:
- m_texture.update(m_frameUP[m_index]);
- break;
- case 1:
- m_texture.update(m_frameRI[m_index]);
- break;
- case 2:
- m_texture.update(m_frameDO[m_index]);
- break;
- case 3:
- m_texture.update(m_frameLE[m_index]);
- break;
- default:
- m_texture.update(m_frameUP[m_index]);
- break;
- }
- }
- }
- void Animation::draw(sf::RenderTarget & target, sf::RenderStates states) const
- {
- // on applique la transformation de l'entité -- on la combine avec celle qui a été passée par l'appelant
- states.transform *= getTransform(); // getTransform() est définie par sf::Transformable
- // on applique la texture
- states.texture = &m_texture;
- // on peut aussi surcharger states.shader ou states.blendMode si nécessaire
- // on dessine le tableau de vertex
- target.draw(m_sprite, states);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement