// // 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