ParticleSystemModule.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // ParticleSystemModule.cpp
  3. // ParticleTool
  4. //
  5. // Created by zhuangyou on 2019/5/9.
  6. //
  7. #include "ParticleSystemModule.h"
  8. #include "ZMLParticleSystemQuad.h"
  9. NS_RU_BEGIN
  10. SpriteFrame* TextureSheetAnimationModule::generateSpriteFrame(int index)
  11. {
  12. if (_texture == nullptr)
  13. return nullptr;
  14. Size s = _texture->getContentSize();
  15. float width = s.width/_tiles.x;
  16. float height = s.height / _tiles.y;
  17. int tileX = (int)_tiles.x;
  18. int tileY = (int)_tiles.y;
  19. int hor = (_startFrame+index)%(tileX);
  20. int ver = (tileY - 1) - floor( (_startFrame+index)/tileX);
  21. if (_flipY == 1)
  22. ver = floor( (_startFrame+index)/tileX);
  23. float offsetX = width * hor;
  24. float offsetY = height * ver;
  25. _tileWidth = width;
  26. _tileHeight = height;
  27. if ( _fileName.size() != 0 ) {//序列帧切图在plist大图中
  28. SpriteFrame* frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(_fileName);
  29. Size originalSize = frame->getOriginalSize();
  30. Rect pointRect = frame->getRect();//1645,1679,58,54 2042,1830
  31. offsetX = pointRect.origin.x;
  32. offsetY = pointRect.origin.y;
  33. width = pointRect.size.width/_tiles.x;
  34. height = pointRect.size.height/_tiles.y;
  35. offsetX = offsetX + width * hor;
  36. offsetY = offsetY + height * ver;
  37. s = originalSize;
  38. }
  39. // CCLOG("generateSpriteFrame :%d %d %f %f",hor,ver,offsetX,offsetY);
  40. SpriteFrame* frame = SpriteFrame::createWithTexture(_texture,Rect(offsetX, offsetY, width, height), false, Vec2(0,0), s);
  41. return frame;
  42. }
  43. //void TextureSheetAnimationModule::update()
  44. //{
  45. // ZMLParticleSystem* system = (ZMLParticleSystem*)_particleSystem;
  46. // if(system)
  47. // {
  48. //
  49. // }
  50. //}
  51. void TextureSheetAnimationModule::onEnable(bool isEnable)
  52. {
  53. if (!isEnable)
  54. return;
  55. ZMLParticleSystemQuad* system = (ZMLParticleSystemQuad*)_particleSystem;
  56. if(system)
  57. {
  58. for(int i = 0; i < _frameCount;i++)
  59. {
  60. SpriteFrame* frame = generateSpriteFrame(i);
  61. if (frame)
  62. system->addSpriteFrame(frame);
  63. }
  64. }
  65. }
  66. void NoiseModule::onEnable(bool isEnable)
  67. {
  68. if (isEnable)
  69. {
  70. }
  71. }
  72. NS_RU_END