12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // ParticleSystemModule.cpp
- // ParticleTool
- //
- // Created by zhuangyou on 2019/5/9.
- //
- #include "ParticleSystemModule.h"
- #include "ZMLParticleSystemQuad.h"
- NS_RU_BEGIN
- SpriteFrame* TextureSheetAnimationModule::generateSpriteFrame(int index)
- {
- if (_texture == nullptr)
- return nullptr;
- Size s = _texture->getContentSize();
- float width = s.width/_tiles.x;
- float height = s.height / _tiles.y;
-
- int tileX = (int)_tiles.x;
- int tileY = (int)_tiles.y;
- int hor = (_startFrame+index)%(tileX);
- int ver = (tileY - 1) - floor( (_startFrame+index)/tileX);
- if (_flipY == 1)
- ver = floor( (_startFrame+index)/tileX);
- float offsetX = width * hor;
- float offsetY = height * ver;
-
- _tileWidth = width;
- _tileHeight = height;
-
- if ( _fileName.size() != 0 ) {//序列帧切图在plist大图中
- SpriteFrame* frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(_fileName);
- Size originalSize = frame->getOriginalSize();
- Rect pointRect = frame->getRect();//1645,1679,58,54 2042,1830
- offsetX = pointRect.origin.x;
- offsetY = pointRect.origin.y;
- width = pointRect.size.width/_tiles.x;
- height = pointRect.size.height/_tiles.y;
- offsetX = offsetX + width * hor;
- offsetY = offsetY + height * ver;
- s = originalSize;
- }
- // CCLOG("generateSpriteFrame :%d %d %f %f",hor,ver,offsetX,offsetY);
- SpriteFrame* frame = SpriteFrame::createWithTexture(_texture,Rect(offsetX, offsetY, width, height), false, Vec2(0,0), s);
- return frame;
- }
- //void TextureSheetAnimationModule::update()
- //{
- // ZMLParticleSystem* system = (ZMLParticleSystem*)_particleSystem;
- // if(system)
- // {
- //
- // }
- //}
- void TextureSheetAnimationModule::onEnable(bool isEnable)
- {
- if (!isEnable)
- return;
- ZMLParticleSystemQuad* system = (ZMLParticleSystemQuad*)_particleSystem;
- if(system)
- {
- for(int i = 0; i < _frameCount;i++)
- {
- SpriteFrame* frame = generateSpriteFrame(i);
- if (frame)
- system->addSpriteFrame(frame);
- }
- }
- }
- void NoiseModule::onEnable(bool isEnable)
- {
- if (isEnable)
- {
- }
- }
- NS_RU_END
|