sprite_animation_player.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "sprite_animation_player.h"
  6. #include "array.h"
  7. #include "memory.h"
  8. namespace crown
  9. {
  10. SpriteAnimationPlayer::SpriteAnimationPlayer()
  11. : m_animations(default_allocator())
  12. {
  13. }
  14. SpriteAnimation* SpriteAnimationPlayer::create_sprite_animation(const SpriteAnimationResource* sar)
  15. {
  16. SpriteAnimation* anim = CE_NEW(default_allocator(), SpriteAnimation)(sar);
  17. array::push_back(m_animations, anim);
  18. return anim;
  19. }
  20. void SpriteAnimationPlayer::destroy_sprite_animation(SpriteAnimation* anim)
  21. {
  22. const uint32_t num = array::size(m_animations);
  23. for (uint32_t i = 0; i < num; i++)
  24. {
  25. if (anim == m_animations[i])
  26. {
  27. CE_DELETE(default_allocator(), anim);
  28. m_animations[i] = m_animations[num - 1];
  29. array::pop_back(m_animations);
  30. return;
  31. }
  32. }
  33. }
  34. void SpriteAnimationPlayer::update(float dt)
  35. {
  36. const uint32_t num = array::size(m_animations);
  37. for (uint32_t i = 0; i < num; i++)
  38. {
  39. m_animations[i]->update(dt);
  40. }
  41. }
  42. } // namespace crown