//------------------------------------------------------------------------- public FishParticleMgr(CRenderScene render_scene, CRenderFish fish, int fish_vib_id, ISpriteFish sprite_fish) { mScene = render_scene; mCRenderFish = fish; mParticlemanager = mScene.getParticlemanager(); mISpriteFish = sprite_fish; mFishData = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id); //解析鱼带的特效数据并保存下来,等待鱼指定播放特效 foreach (var it in mFishData.ParticleArray) { if (null == it.TbDataParticle || it.TbDataParticle.Id <= 0) { continue; } TbDataFish.ParticleProduceTimeEnum time_enum = (TbDataFish.ParticleProduceTimeEnum)it.ParticleProduceTime; if (!mDicParticleData.ContainsKey(time_enum)) { mDicParticleData[time_enum] = new List <TbDataFish.ParticleDataStruct>(); } mDicParticleData[time_enum].Add(it); } }
//------------------------------------------------------------------------- //根据vib数据创建鱼的代码全部放在这里,ISpriteFish的实现类不在需要知道TbDataFish的任何事情?// public ISpriteFish buildSpriteFish(CRenderFish render_fish, int fish_vib_id) { TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id); ISpriteFish sprite_fish = null; if (fish_data.Type == TbDataFish.FishType.Custom) { sprite_fish = new CSpriteCustomGroup(); } else if (fish_data.Type == TbDataFish.FishType.EvenFour) { sprite_fish = new CSpriteEvenFourFish(); } else if (fish_data.Type == TbDataFish.FishType.EvenFive) { sprite_fish = new CSpriteEvenFiveFish(); } else { sprite_fish = new CSpriteFishGroup((int)fish_data.Type); } sprite_fish.create(mScene, fish_data); sprite_fish.setRenderFish(render_fish); sprite_fish.setTag("CSpriteFish"); sprite_fish.setTrigger(true); sprite_fish.setLayer(mScene.getLayerAlloter().getFishLayer(fish_vib_id)); #if UNITY_EDITOR //ViDebuger.Warning("TkFish_vib_id_ " + fish_vib_id); sprite_fish.setGameobjectName("TkFish_vib_id_" + fish_vib_id); #endif return(sprite_fish); }
public void create(CRenderScene scene, ISpriteFish sprite_fish, TbDataFish vib_fish_data) { mScene = scene; mFixedScale = (float)vib_fish_data.CycleHeight / (float)vib_fish_data.CyclePixelHeight; initFish("red_fish_bottom_bottom", EbVector3.Zero, 130, mScene.getLayerAlloter().EachFishGap / 10f * 3, sprite_fish); //initFish("red_fish_bottom_middle", EbVector3.Zero, -130, mScene.getLayerAlloter().EachFishGap / 10f * 2, sprite_fish); initFish("red_fish_bottom_sign2", EbVector3.Zero, 0, mScene.getLayerAlloter().EachFishGap / 10f, sprite_fish); setScale(mFixedScale); }
public void create(CRenderScene scene, ISpriteFish sprite_fish, TbDataFish vib_fish_data) { mScene = scene; mFixedScale = (float)vib_fish_data.CycleHeight / (float)vib_fish_data.CyclePixelHeight; initFish("red_fish_bottom_bottom", EbVector3.Zero, 130, mScene.getLayerAlloter().EachFishGap / 10f * 3, sprite_fish); //initFish("red_fish_bottom_middle", EbVector3.Zero, -130, mScene.getLayerAlloter().EachFishGap / 10f * 2, sprite_fish); initFish("red_fish_bottom_sign2", EbVector3.Zero, 0, mScene.getLayerAlloter().EachFishGap / 10f, sprite_fish); setScale(mFixedScale); }
//------------------------------------------------------------------------- public void create(int fish_vib_id, int fish_objid) { mVibFish = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id); mFishObjId = fish_objid; mISpriteFish = mScene.getSpriteFishFactory().buildSpriteFish(this, fish_vib_id); mMassEntity = new MassEntity(); mMassEntity.setSpeed(mVibFish.getSpeed()); mISpriteFish.setDirection(0); mFishParticleMgr = new FishParticleMgr(mScene, this, fish_vib_id, mISpriteFish); mFishParticleMgr.fishBorn(); mFishParticleMgr.fishMoving(); }
//------------------------------------------------------------------------- public override void destroy() { base.destroy(); mLockFishObjId = -1; if (mSpriteFish != null) { mSpriteFish.destroy(); mSpriteFish = null; } if (_isMe()) { mScene.getProtocol().c2sUnlockFish(mScene.getMyPlayerId()); } }
//------------------------------------------------------------------------- public void destroy() { if (mISpriteFish == null) { return; } // 播放鱼销毁后的粒子特效 if (!mNotNeedDestroyParticle && IsDestroy) { mFishParticleMgr.fishDestroy(mPlayerId, mVibFish.Id, mTotalScore); mFishParticleMgr.fishCoins(mPlayerId); } mFishParticleMgr.destroy(); mISpriteFish.destroy(); mISpriteFish = null; }
//------------------------------------------------------------------------- public override void destroy() { base.destroy(); mLockFishObjId = -1; if (mSpriteFish != null) { mSpriteFish.destroy(); mSpriteFish = null; } if (_isMe()) { mScene.getProtocol().c2sUnlockFish(mScene.getMyPlayerId()); } }
//------------------------------------------------------------------------- public FishParticleMgr(CRenderScene render_scene, CRenderFish fish, int fish_vib_id, ISpriteFish sprite_fish) { mScene = render_scene; mCRenderFish = fish; mParticlemanager = mScene.getParticlemanager(); mISpriteFish = sprite_fish; mFishData = EbDataMgr.Instance.getData<TbDataFish>(fish_vib_id); //解析鱼带的特效数据并保存下来,等待鱼指定播放特效 foreach (var it in mFishData.ParticleArray) { if (null == it.TbDataParticle || it.TbDataParticle.Id <= 0) continue; TbDataFish.ParticleProduceTimeEnum time_enum = (TbDataFish.ParticleProduceTimeEnum)it.ParticleProduceTime; if (!mDicParticleData.ContainsKey(time_enum)) { mDicParticleData[time_enum] = new List<TbDataFish.ParticleDataStruct>(); } mDicParticleData[time_enum].Add(it); } }
//------------------------------------------------------------------------- public void resetLockedFishObjId(int lock_fish_objid) { if (mSpriteFish != null) { mSpriteFish.destroy(); mSpriteFish = null; } mLockFishObjId = lock_fish_objid; CRenderFish fish = mScene.getLevel().findFish(mLockFishObjId); if (fish != null && !fish.IsDie) { int fish_vib_id = fish.FishVibId; string tag = "CSpriteBuffer" + mTurret.getTurretId().ToString(); mSpriteFish = mScene.getSpriteFishFactory().buildSpriteFish(null, fish_vib_id); mSpriteFish.setTag(tag); mSpriteFish.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.BufferLockFish)); if (EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id).Red == TbDataFish.IsRed.YES) { mSpriteFish.setColor(new Color(1, 0, 0)); } else { mSpriteFish.setColor(new Color(1, 1, 1)); } mSpriteFish.setScale(EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id).getLockCardFishScale()); mSpriteFish.setTrigger(true); mTurret.displayLinkFish(fish); } if (_isMe()) { mScene.getProtocol().c2sLockFish(mScene.getMyPlayerId(), lock_fish_objid); } }
//------------------------------------------------------------------------- public void setISpriteFishNull() { mISpriteFish = null; }
//------------------------------------------------------------------------- public void init(ISpriteFish sprite_fish, CRenderScene scene) { base.init(scene); mISpriteFish = sprite_fish; }
//------------------------------------------------------------------------- public void destroy() { if (mISpriteFish == null) return; // 播放鱼销毁后的粒子特效 if (!mNotNeedDestroyParticle && IsDestroy) { mFishParticleMgr.fishDestroy(mPlayerId, mVibFish.Id, mTotalScore); mFishParticleMgr.fishCoins(mPlayerId); } mFishParticleMgr.destroy(); mISpriteFish.destroy(); mISpriteFish = null; }
//------------------------------------------------------------------------- public void init(ISpriteFish sprite_fish, CRenderScene scene) { base.init(scene); mISpriteFish = sprite_fish; }
//------------------------------------------------------------------------- public void setISpriteFishNull() { mISpriteFish = null; }
//------------------------------------------------------------------------- public void resetLockedFishObjId(int lock_fish_objid) { if (mSpriteFish != null) { mSpriteFish.destroy(); mSpriteFish = null; } mLockFishObjId = lock_fish_objid; CRenderFish fish = mScene.getLevel().findFish(mLockFishObjId); if (fish != null && !fish.IsDie) { int fish_vib_id = fish.FishVibId; string tag = "CSpriteBuffer" + mTurret.getTurretId().ToString(); mSpriteFish = mScene.getSpriteFishFactory().buildSpriteFish(null, fish_vib_id); mSpriteFish.setTag(tag); mSpriteFish.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.BufferLockFish)); if (EbDataMgr.Instance.getData<TbDataFish>(fish_vib_id).Red == TbDataFish.IsRed.YES) { mSpriteFish.setColor(new Color(1, 0, 0)); } else { mSpriteFish.setColor(new Color(1, 1, 1)); } mSpriteFish.setScale(EbDataMgr.Instance.getData<TbDataFish>(fish_vib_id).getLockCardFishScale()); mSpriteFish.setTrigger(true); mTurret.displayLinkFish(fish); } if (_isMe()) { mScene.getProtocol().c2sLockFish(mScene.getMyPlayerId(), lock_fish_objid); } }
void initFish(string animation, EbVector3 offset, float angle_speed, float layer_offset, ISpriteFish sprite_fish) { SpriteAndOffset sprite_offset = new SpriteAndOffset(mScene.getRenderObjectPool().newFishStillSprite(), EbVector3.Zero, angle_speed, layer_offset); sprite_offset.mFishStillSprite.init(sprite_fish, mScene); sprite_offset.mFishStillSprite.playAnimation(animation); mSprite.Add(sprite_offset); }
void initFish(string animation, EbVector3 offset, float angle_speed, float layer_offset, ISpriteFish sprite_fish) { SpriteAndOffset sprite_offset = new SpriteAndOffset(mScene.getRenderObjectPool().newFishStillSprite(), EbVector3.Zero, angle_speed, layer_offset); sprite_offset.mFishStillSprite.init(sprite_fish, mScene); sprite_offset.mFishStillSprite.playAnimation(animation); mSprite.Add(sprite_offset); }
//------------------------------------------------------------------------- public void create(int fish_vib_id, int fish_objid) { mVibFish = EbDataMgr.Instance.getData<TbDataFish>(fish_vib_id); mFishObjId = fish_objid; mISpriteFish = mScene.getSpriteFishFactory().buildSpriteFish(this, fish_vib_id); mMassEntity = new MassEntity(); mMassEntity.setSpeed(mVibFish.getSpeed()); mISpriteFish.setDirection(0); mFishParticleMgr = new FishParticleMgr(mScene, this, fish_vib_id, mISpriteFish); mFishParticleMgr.fishBorn(); mFishParticleMgr.fishMoving(); }