Example #1
0
        //-------------------------------------------------------------------------
        public void create(CRenderScene scene, TbDataFish vib_fish_data)
        {
            mScene        = scene;
            mVibFishData  = vib_fish_data;
            mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;

            if (mVibFishData.Type == TbDataFish.FishType.Custom)
            {
                mCycle = mScene.getRenderObjectPool().newFishStillSprite();
                mCycle.init(this, scene);
                mCycle.playAnimation(mVibFishData.FishCompose.BackGroundAniName);
                mCycle.setScale((float)mVibFishData.FishCompose.BackGroundAnimationScale / 100.0f);
                foreach (var it in mVibFishData.FishCompose.FishComposes)
                {
                    if (null != it && it.Id > 0)
                    {
                        TbDataFish      fish_data   = EbDataMgr.Instance.getData <TbDataFish>(it.FishVibId);
                        FishStillSprite fish_sprite = mScene.getRenderObjectPool().newFishStillSprite();

                        fish_sprite.init(this, scene);
                        fish_sprite.playAnimation(fish_data.FishAnimMove);
                        fish_sprite.setScale(mFixFishScale * (float)fish_data.FishHeight / (float)fish_data.FishPixelHeight);

                        mFishs.Add(new FishSpriteAndOffset(
                                       fish_sprite,
                                       new EbVector3(it.OffsetX, it.OffsetY, 0),
                                       fish_data.FishAnimDie));
                    }
                }
            }
        }
Example #2
0
        //---------------------------------------------------------------------
        public override void create()
        {
            if (Done)
            {
                return;
            }

            int fish_vib_id  = int.Parse(getServerParam()[0]);
            int route_vib_id = int.Parse(getServerParam()[1]);

            TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id);

            if (null != fish_data)
            {
                float delay_time = 0;
                if (null != fish_data.ChainFish && fish_data.Type == TbDataFish.FishType.ChainFish)
                {
                    delay_time = (float)(fish_data.ChainFish.FishHeight) / fish_data.ChainFish.getSpeed();

                    for (int i = 0; i < fish_data.ChainFishNumber; i++)
                    {
                        newBaseEntity(fish_data.ChainFish.Id, route_vib_id, delay_time * i);
                    }
                }
                else
                {
                    newBaseEntity(fish_vib_id, route_vib_id, 0);
                }
            }
            setDone();
        }
Example #3
0
        //-------------------------------------------------------------------------
        //根据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);
        }
Example #4
0
        //-------------------------------------------------------------------------
        public void create(CRenderScene scene, TbDataFish vib_fish_data)
        {
            mScene = scene;
            mVibFishData = vib_fish_data;
            mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;

            if (mVibFishData.Type == TbDataFish.FishType.Custom)
            {
                mCycle = mScene.getRenderObjectPool().newFishStillSprite();
                mCycle.init(this, scene);
                mCycle.playAnimation(mVibFishData.FishCompose.BackGroundAniName);
                mCycle.setScale((float)mVibFishData.FishCompose.BackGroundAnimationScale / 100.0f);
                foreach (var it in mVibFishData.FishCompose.FishComposes)
                {
                    if (null != it && it.Id > 0)
                    {
                        TbDataFish fish_data = EbDataMgr.Instance.getData<TbDataFish>(it.FishVibId);
                        FishStillSprite fish_sprite = mScene.getRenderObjectPool().newFishStillSprite();

                        fish_sprite.init(this, scene);
                        fish_sprite.playAnimation(fish_data.FishAnimMove);
                        fish_sprite.setScale(mFixFishScale * (float)fish_data.FishHeight / (float)fish_data.FishPixelHeight);

                        mFishs.Add(new FishSpriteAndOffset(
                            fish_sprite,
                            new EbVector3(it.OffsetX, it.OffsetY, 0),
                            fish_data.FishAnimDie));
                    }
                }
            }
        }
Example #5
0
        //-------------------------------------------------------------------------
        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);
            }
        }
Example #6
0
        //-------------------------------------------------------------------------
        protected FishStillSprite _loadFishStillSpriteByFishId(TbDataFish.FishIdAndScaleStruct fish_id_scale)
        {
            TbDataFish      fish_data   = EbDataMgr.Instance.getData <TbDataFish>(fish_id_scale.FishId);
            FishStillSprite fish_sprite = _loadFishStillSprite(fish_data.FishAnimMove);

            fish_sprite.setScale(((float)fish_id_scale.Scale / 100f) * mFixFishScale * (float)fish_data.FishHeight / (float)fish_data.FishPixelHeight);
            return(fish_sprite);
        }
Example #7
0
 //-------------------------------------------------------------------------
 public override void load(EbPropSet prop_set)
 {
     Name = prop_set.getPropString("T_Name").get();
     var prop_state = prop_set.getPropInt("I_State");
     State = prop_state == null ? DataState.Default : (DataState)prop_state.get();
     Fish = EbDataMgr.Instance.getData<TbDataFish>(prop_set.getPropInt("I_Fish").get());
     FishAmount = prop_set.getPropInt("I_FishAmount").get();
     ShoalType = (_eShoalType)prop_set.getPropInt("I_ShoalType").get();
 }
Example #8
0
        //-------------------------------------------------------------------------
        public override void load(EbPropSet prop_set)
        {
            Name = prop_set.getPropString("T_Name").get();
            var prop_state = prop_set.getPropInt("I_State");

            State      = prop_state == null ? DataState.Default : (DataState)prop_state.get();
            Fish       = EbDataMgr.Instance.getData <TbDataFish>(prop_set.getPropInt("I_Fish").get());
            FishAmount = prop_set.getPropInt("I_FishAmount").get();
            ShoalType  = (_eShoalType)prop_set.getPropInt("I_ShoalType").get();
        }
Example #9
0
 //-------------------------------------------------------------------------
 public override void create(CRenderScene scene, TbDataFish vib_fish_data)
 {
     base.create(scene, vib_fish_data);
     if (mVibFishData.Type == TbDataFish.FishType.EvenFive)
     {
         //_initSprite(154f, 80f);
         _initSprite(108.89f, 108.89f, 80f);
     }
     _setBackgroundSize(0.7f);
 }
Example #10
0
 //-------------------------------------------------------------------------
 public override void create(CRenderScene scene, TbDataFish vib_fish_data)
 {
     base.create(scene, vib_fish_data);
     if (mVibFishData.Type == TbDataFish.FishType.EvenFive)
     {
         //_initSprite(154f, 80f);
         _initSprite(108.89f, 108.89f, 80f);
     }
     _setBackgroundSize(0.7f);
 }
 //-------------------------------------------------------------------------
 public override void load(EbPropSet prop_set)
 {
     Name = prop_set.getPropString("T_Name").get();
     var prop_state = prop_set.getPropInt("I_State");
     State = prop_state == null ? DataState.Default : (DataState)prop_state.get();
     NormalFish = EbDataMgr.Instance.getData<TbDataFish>(prop_set.getPropInt("I_NormalFish").get());
     RedFish = EbDataMgr.Instance.getData<TbDataFish>(prop_set.getPropInt("I_RedFish").get());
     RedFishDouble = EbDataMgr.Instance.getData<TbDataFish>(prop_set.getPropInt("I_RedFishDouble").get());
     LastTime = prop_set.getPropInt("I_LastTime").get();
 }
Example #12
0
        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);
        }
Example #13
0
        //-------------------------------------------------------------------------
        public override void load(EbPropSet prop_set)
        {
            Name = prop_set.getPropString("T_Name").get();
            var prop_state = prop_set.getPropInt("I_State");

            State         = prop_state == null ? DataState.Default : (DataState)prop_state.get();
            NormalFish    = EbDataMgr.Instance.getData <TbDataFish>(prop_set.getPropInt("I_NormalFish").get());
            RedFish       = EbDataMgr.Instance.getData <TbDataFish>(prop_set.getPropInt("I_RedFish").get());
            RedFishDouble = EbDataMgr.Instance.getData <TbDataFish>(prop_set.getPropInt("I_RedFishDouble").get());
            LastTime      = prop_set.getPropInt("I_LastTime").get();
        }
Example #14
0
        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);
        }
Example #15
0
        void ss()
        {
            CRenderTurret turret = mScene.getTurret(mPlayerId);

            if (turret == null)
            {
                return;
            }
            TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(mFishVibId);

            turret.displayScoreTurnplate(mTotalScore, fish_data.TurnplateParticle);
        }
Example #16
0
        //-------------------------------------------------------------------------
        // 服务端广播消息:鱼死亡
        public void s2allcFishDie(uint et_player_rpcid, int total_score,
                                  int bullet_objid, int fish_objid, int effect_fish_vibid, int current_rate)
        {
            CRenderFish fish = (CRenderFish)mBaseFishLordMgr.findBaseEntity(fish_objid);

            if (fish != null)
            {
                //fish.signDestroy();
                // 销毁鱼
                fish.dieWithTotalScore(et_player_rpcid, total_score);

                // 更新金币和筹码
                CRenderTurret turret = mScene.getTurret(et_player_rpcid);
                if (turret != null)
                {
                    //turret.setPlayerGold(gold);

                    TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(fish.FishVibId);
                    if (fish_data.FishDisplayScoreType == TbDataFish._eDisplayScoreType.Turnplate)
                    {
                        //turret.displayScoreTurnplate(total_score, fish_data.TurnplateParticle.Data);
                    }
                    else if (fish_data.FishDisplayScoreType == TbDataFish._eDisplayScoreType.Chips)
                    {
                        turret.displayChips(total_score);
                    }
                    else if (fish_data.FishDisplayScoreType == TbDataFish._eDisplayScoreType.ChipsAndTurnplate)
                    {
                        turret.displayChips(total_score);
                        //turret.displayScoreTurnplate(total_score, fish_data.TurnplateParticle.Data);
                    }
                }
            }

            // 销毁子弹
            if (mMapBullet.ContainsKey(et_player_rpcid))
            {
                Dictionary <int, CRenderBullet> m = mMapBullet[et_player_rpcid];
                if (!m.ContainsKey(bullet_objid))
                {
                    return;
                }
                m[bullet_objid].signDestroy();
            }
            else
            {
                //Debug.LogError("CRenderLevel::s2allcFishDie() not found player_id=" + player_id + " when signdestroy bullet");
            }
        }
Example #17
0
        //-------------------------------------------------------------------------
        public void create(int fish_vibid, int fish_objid)
        {
            mFishData  = EbDataMgr.Instance.getData <TbDataFish>(fish_vibid);
            mFishObjId = fish_objid;
            mSpeed     = mFishData.getSpeed();

            mFishType = (TbDataFish.FishType)mFishData.Type;

            mMassEntity = new MassEntity();
            mMassEntity.setSpeed(mSpeed);

            mFishCollider = mScene.getColliderMgr().newFishCollider(0, 0, 80, 80, this);//读取vib配置

            update(0);
        }
Example #18
0
        //-------------------------------------------------------------------------
        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();
        }
Example #19
0
        //-------------------------------------------------------------------------
        public void fishDestroy(uint et_player_rpcid, int fish_vib_id, int total_score)
        {
            List <StillParticle> particle_list = _loopBuildParticle(TbDataFish.ParticleProduceTimeEnum.FishDestroy, et_player_rpcid);

            foreach (var it in particle_list)
            {
                it.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.Particle));
            }

            TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id);

            if (fish_data.FishDisplayScoreType == TbDataFish._eDisplayScoreType.Turnplate ||
                fish_data.FishDisplayScoreType == TbDataFish._eDisplayScoreType.ChipsAndTurnplate)
            {
                mScene.addParticleTurnplateCaller(new ParticleTurnplateCaller(mScene, et_player_rpcid, fish_vib_id, total_score, particle_list));
            }
        }
Example #20
0
        //-------------------------------------------------------------------------
        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);
            }
        }
Example #21
0
        //---------------------------------------------------------------------
        void createEntityParticleSystem(int fish_vib_id)
        {
            int fish_count = 1;

            TbDataFish fish_data = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id);

            if (fish_data.Type == TbDataFish.FishType.ChainFish)
            {
                fish_count = fish_data.ChainFishNumber;
            }

            int fish_begin_obj_id = getNextFishObjId(fish_count);
            int route_vib_id      = _getRandomRouteId((TbDataFish.FishRouteCategory)EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id).fishRouteCategory);

            List <string> server_param = new List <string>();

            server_param.Add(fish_vib_id.ToString());
            server_param.Add(route_vib_id.ToString());

            mBaseFishLordMgr.addParticleSystem(mNormalFishParticleFileName, server_param, fish_begin_obj_id);
            mScene.getProtocol().s2allcCreateFishLord(mNormalFishParticleFileName, server_param, fish_begin_obj_id);
        }
Example #22
0
        //---------------------------------------------------------------------
        public void create(CRenderScene scene, TbDataFish vib_fish_data)
        {
            mScene = scene;
            mVibFishData = vib_fish_data;
            mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;

            bool has_cycle = !string.IsNullOrEmpty(mVibFishData.CycleAnimationName);

            for (int i = 0; i < mFishNumber; i++)
            {
                mFishs.Add(mScene.getRenderObjectPool().newFishStillSprite());
                if (has_cycle)
                {
                    mRedBottom = new CSpriteRedBottom();
                    mRedBottom.create(mScene, this, mVibFishData);
                }
            }

            foreach (var it in mFishs)
            {
                it.init(this, scene);
            }

            float fish_scale = ((float)mVibFishData.FishHeight / (float)mVibFishData.FishPixelHeight);

            foreach (var it in mFishs)
            {
                it.setScale(0.7f * fish_scale);
            }

            playAnimation(mVibFishData.FishAnimMove);

            if (mVibFishData.Red == TbDataFish.IsRed.YES)
            {
                mInitColor = new Color(1, 0, 0);
                resetColor(1);
            }
        }
Example #23
0
        //---------------------------------------------------------------------
        public void create(CRenderScene scene, TbDataFish vib_fish_data)
        {
            mScene        = scene;
            mVibFishData  = vib_fish_data;
            mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;

            bool has_cycle = !string.IsNullOrEmpty(mVibFishData.CycleAnimationName);

            for (int i = 0; i < mFishNumber; i++)
            {
                mFishs.Add(mScene.getRenderObjectPool().newFishStillSprite());
                if (has_cycle)
                {
                    mRedBottom = new CSpriteRedBottom();
                    mRedBottom.create(mScene, this, mVibFishData);
                }
            }

            foreach (var it in mFishs)
            {
                it.init(this, scene);
            }

            float fish_scale = ((float)mVibFishData.FishHeight / (float)mVibFishData.FishPixelHeight);

            foreach (var it in mFishs)
            {
                it.setScale(0.7f * fish_scale);
            }

            playAnimation(mVibFishData.FishAnimMove);

            if (mVibFishData.Red == TbDataFish.IsRed.YES)
            {
                mInitColor = new Color(1, 0, 0);
                resetColor(1);
            }
        }
Example #24
0
 //-------------------------------------------------------------------------
 protected void _newSpriteAndOffset(string layer0animation, string layer1animation, TbDataFish.FishIdAndScaleStruct fish_id_scale, EbVector3 position, float layer_offset, float angle_speed)
 {
     mBackground.Add(new SpriteAndOffset(_loadFishStillSprite(layer0animation), position, -angle_speed, mFishCycleGap * 2 + layer_offset));
     mBackground.Add(new SpriteAndOffset(_loadFishStillSprite(layer1animation), position, angle_speed, mFishCycleGap + layer_offset));
     mFishs.Add(new SpriteAndOffset(_loadFishStillSpriteByFishId(fish_id_scale), position, 0, 0, EbDataMgr.Instance.getData<TbDataFish>(fish_id_scale.FishId).FishAnimDie));
 }
Example #25
0
        //-------------------------------------------------------------------------
        StillParticle _buildParticle(TbDataFish.ParticleDataStruct particle_data, uint et_player_rpcid)
        {
            StillParticle still_particle = mParticlemanager.newParticle(particle_data.TbDataParticle.ParticlePrefabName);

            if (particle_data.TargetPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.None ||
                particle_data.TargetPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Default)
            {
                _particleNoneTarget(still_particle, particle_data, et_player_rpcid);
            }
            else if (particle_data.TargetPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Turret)
            {
                _particleTurretTarget(still_particle, particle_data, et_player_rpcid);
            }
            else if (particle_data.TargetPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Fixed)
            {
                _particleTurretTarget(still_particle, particle_data, et_player_rpcid);
            }

            still_particle.setLayer(mScene.getLayerAlloter().getFishLayer(mFishData.Id));

            return still_particle;
        }
Example #26
0
 //-------------------------------------------------------------------------
 public virtual void create(CRenderScene scene, TbDataFish vib_fish_data)
 {
     mScene = scene;
     mVibFishData = vib_fish_data;
     mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;
 }
Example #27
0
 //-------------------------------------------------------------------------
 public virtual void create(CRenderScene scene, TbDataFish vib_fish_data)
 {
     mScene        = scene;
     mVibFishData  = vib_fish_data;
     mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f;
 }
Example #28
0
        //-------------------------------------------------------------------------
        List<StillParticle> _loopBuildParticle(TbDataFish.ParticleProduceTimeEnum time_enum, uint et_player_rpcid = 0)
        {
            if (!mDicParticleData.ContainsKey(time_enum)) return new List<StillParticle>();

            List<StillParticle> particle_list = new List<StillParticle>();

            foreach (var it in mDicParticleData[time_enum])
            {
                particle_list.Add(_buildParticle(it, et_player_rpcid));
            }

            return particle_list;
        }
Example #29
0
        //-------------------------------------------------------------------------
        void _particleNoneTarget(StillParticle still_particle, TbDataFish.ParticleDataStruct particle_data, uint et_player_rpcid)
        {
            if (particle_data.StartPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Fish)
            {
                if (particle_data.ParticleProduceTime == TbDataFish.ParticleProduceTimeEnum.FishMoving)
                {
                    mListParticle.Add(still_particle);//跟随鱼运动
                }
                else
                {
                    still_particle.setPosition(mCRenderFish.Position);
                    still_particle.setLooping(false);
                }
            }
            else if (particle_data.StartPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Fixed)
            {
                still_particle.setPosition(new EbVector3(particle_data.StartPoint.x, particle_data.StartPoint.y, 0));
            }

            _setOffsetLocation(still_particle, particle_data.StartPoint.x, particle_data.StartPoint.y);
        }
Example #30
0
        //-------------------------------------------------------------------------
        public void create(int fish_vibid, int fish_objid)
        {
            mFishData = EbDataMgr.Instance.getData<TbDataFish>(fish_vibid);
            mFishObjId = fish_objid;
            mSpeed = mFishData.getSpeed();

            mFishType = (TbDataFish.FishType)mFishData.Type;

            mMassEntity = new MassEntity();
            mMassEntity.setSpeed(mSpeed);

            mFishCollider = mScene.getColliderMgr().newFishCollider(0, 0, 80, 80, this);//读取vib配置

            update(0);
        }
Example #31
0
 //-------------------------------------------------------------------------
 protected FishStillSprite _loadFishStillSpriteByFishId(TbDataFish.FishIdAndScaleStruct fish_id_scale)
 {
     TbDataFish fish_data = EbDataMgr.Instance.getData<TbDataFish>(fish_id_scale.FishId);
     FishStillSprite fish_sprite = _loadFishStillSprite(fish_data.FishAnimMove);
     fish_sprite.setScale(((float)fish_id_scale.Scale / 100f) * mFixFishScale * (float)fish_data.FishHeight / (float)fish_data.FishPixelHeight);
     return fish_sprite;
 }
Example #32
0
        //-------------------------------------------------------------------------
        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();
        }
        //---------------------------------------------------------------------
        int _getRandomRouteId(TbDataFish.FishRouteCategory category)
        {
            List<int> group_fish_id = mFishRouteMap.getGroupFishId(category);
            int random_id = getRandoNumber(0, group_fish_id.Count - 1);
            int route_vibid = 0;

            for (int i = 0; i + random_id < group_fish_id.Count; i++)
            {
                route_vibid = group_fish_id[random_id + i];
                if (!mListRouteIdSaver.Contains(route_vibid))
                {
                    mListRouteIdSaver.Add(route_vibid);
                    return route_vibid;
                }
            }

            for (int i = 1; random_id - i > 0; i++)
            {
                route_vibid = group_fish_id[random_id - i];
                if (!mListRouteIdSaver.Contains(route_vibid))
                {
                    mListRouteIdSaver.Add(route_vibid);
                    return route_vibid;
                }
            }

            return 1;
        }
Example #34
0
 //-------------------------------------------------------------------------
 public List<int> getGroupFishId(TbDataFish.FishRouteCategory category)
 {
     return mDicFishRouteCategory[category];
 }
Example #35
0
        //-------------------------------------------------------------------------
        void _particleTurretTarget(StillParticle still_particle, TbDataFish.ParticleDataStruct particle_data, uint et_player_rpcid)
        {
            CRenderTurret turret = mScene.getTurret(et_player_rpcid);
            if (turret == null) return;
            EbVector3 start_position = EbVector3.Zero;

            if (particle_data.StartPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Fish)
            {
                start_position = mCRenderFish.Position;
            }
            else if (particle_data.StartPoint.ParticlePointType == TbDataFish.ParticlePointStruct.ParticlePointTypeEnum.Fixed)
            {
                start_position = new EbVector3(particle_data.StartPoint.x, particle_data.StartPoint.y, 0);
            }

            still_particle.setRoute(RouteHelper.buildLineRoute(
                start_position + new EbVector3(particle_data.StartPoint.x, particle_data.StartPoint.y, 0),
                turret.getTurretPos() + new EbVector3(particle_data.TargetPoint.x, particle_data.TargetPoint.y, 0)), 200);
        }