//------------------------------------------------------------------------- public virtual void setPosition(EbVector3 position, float angle) { if (mSprite != null) { mSprite.setPosition(position); mSprite.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.Buffer)); mSprite.setDirection(angle); } }
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); }
//------------------------------------------------------------------------- void _initRippleBackground() { mRippleBackgroundStillSprite = _loadRippleStillSprite(); mRippleBackgroundStillSprite.setPosition(new EbVector3(-mScene.getSceneLength() / 2, -mScene.getSceneWidth() / 2, 0)); mRippleBackgroundStillSprite.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.Wave)); mRippleBackgroundStillSprite.setActive(false); }
//------------------------------------------------------------------------- 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)); } } } }
//------------------------------------------------------------------------- //根据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 LinkLockedFishFeature(CRenderScene scene, CRenderTurret turret) { mCRenderTurret = turret; mScene = scene; mLayer = mScene.getLayerAlloter().getLayer(_eLevelLayer.LinkLockedFish); mArrow = mScene.getRenderObjectPool().newStillSprite(); mArrow.setScale(0.5f); mArrow.playAnimation("locking_line_array"); mArrow.setColor(mCRenderTurret.getTurretColor()); mArrow.setLayer(mLayer); mNumber = mScene.getRenderObjectPool().newStillSprite(); mNumber.setScale(1f); mNumber.playAnimation("locking_line_target_" + mCRenderTurret.getTurretId()); mNumber.setColor(mCRenderTurret.getTurretColor()); mNumber.setLayer(mLayer); setActive(false); #if UNITY_EDITOR mArrow.gameObject.name = "TkSpriteLinkLocked_locking_line_array"; mNumber.gameObject.name = "TkSpriteLinkLocked_locking_line_target_" + mCRenderTurret.getTurretId(); #endif }
//------------------------------------------------------------------------- void _loadSeaStar(int map_id) { TbDataMap data = EbDataMgr.Instance.getData <TbDataMap>(map_id); foreach (var it in data.SeaStarParticle) { try { if (it.TbDataParticle == null || it.TbDataParticle.Id == 0) { continue; } StillParticle still_particle = mScene.getParticlemanager().newParticle(it.TbDataParticle.ParticlePrefabName); still_particle.setPosition(new EbVector3(it.PositionX, it.PositionY, 0)); still_particle.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.StarFish)); mSeaStar.Add(still_particle); #if UNITY_EDITOR still_particle.gameObject.name = "TkSpriteSeaStar_" + it.TbDataParticle.ParticlePrefabName; #endif } catch (Exception e) { Debug.LogWarning(e); } } }
//------------------------------------------------------------------------- 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)); } } } }
//------------------------------------------------------------------------- public CSpriteScoreTurnplate(CRenderScene scene, EbVector3 position, float up_angle) { mScene = scene; mPosition = position; mAngle = up_angle; mSpriteNumber = new CSpriteNumber(mScene, new CScoreDigitFactory(mScene)); mSpriteNumber.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretScore)); }
//------------------------------------------------------------------------- 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)); } }
//------------------------------------------------------------------------- void _initTurretUnit(ref StillSprite still_sprite, string animation_name, float scale, _eLevelLayer layer) { still_sprite = mScene.getRenderObjectPool().newStillSprite(); still_sprite.playAnimation(animation_name); still_sprite.setScale(scale); still_sprite.setLayer(mScene.getLayerAlloter().getLayer(layer)); still_sprite.setPosition(mRenderTurret.getTurretPos()); still_sprite.setDirection(mScene.getTurretHelper().getBaseAngleByTurretId(mRenderTurret.getTurretId())); still_sprite.setTag("CSpriteTurret" + mRenderTurret.getTurretId()); }
//------------------------------------------------------------------------- public CSpriteBgNumber(CRenderScene scene, BgColorEnum color, int number) { mScene = scene; float number_layer = mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretScore); mCSpriteNumber = new CSpriteNumber(mScene, new CPanelDigitFactory(mScene)); mCSpriteNumber.create(number, EbVector3.Zero, 0, CSpriteNumber._eNumberSize.Small2); mCSpriteNumber.setLayer(number_layer); mNumberBackgroundCSprite = mScene.getRenderObjectPool().newStillSprite(); mNumberBackgroundCSprite.setLayer(number_layer + mScene.getLayerAlloter().EachFishGap / 100f); mNumberBackgroundCSprite.setScale(0.65f * number.ToString().Length, 0.8f); mNumberBackgroundCSprite.playAnimation(getAnimationNameByColor(color)); #if UNITY_EDITOR mNumberBackgroundCSprite.gameObject.name = "TkSpriteChips_" + getAnimationNameByColor(color); #endif }
//------------------------------------------------------------------------- CSpriteFishDieScore(CRenderScene render_scene, EbVector3 pos, int score, float delay_time) { mCSpriteNumber = new CSpriteNumber(render_scene, new CScoreDigitFactory(render_scene)); mCSpriteNumber.create(score, pos, 0, getByScore(score)); mCSpriteNumber.setLayer(render_scene.getLayerAlloter().getLayer(_eLevelLayer.FishScore)); mFunDelayTime = delay_time; mIsNeedAutoDestroy = true; _initRoute(pos, 0); mNumber = score; }
//------------------------------------------------------------------------- void _newShockBackground(string background_name) { mShockBackgroundStillSprite = mBackgroundLoader.newBackgroundStillSprite(background_name, mScene); mShockBackgroundStillSprite.setPosition(EbVector3.Zero); mShockBackgroundStillSprite.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.ShockBackground)); mShockBackgroundStillSprite.setActive(false); #if UNITY_EDITOR mShockBackgroundStillSprite.gameObject.name = "TkBackground"; #endif }
//------------------------------------------------------------------------- public void load(string prefab_name, _eLevelLayer layer) { mBgSprite = mBackgroundLoader.newBackgroundStillSprite(prefab_name, mScene); mBgSprite.setPosition(EbVector3.Zero); mBgSprite.setDirection(0); mBgSprite.setLayer(mScene.getLayerAlloter().getLayer(layer)); mBgClippedSprite = mBgSprite.gameObject.GetComponent <tk2dClippedSprite>(); #if UNITY_EDITOR mBgSprite.gameObject.name = "TkBackground"; #endif }
//------------------------------------------------------------------------- public CSpriteHeap(CRenderScene scene, int number_of_chip, int score, EbVector3 position, float up_angle, CSpriteBgNumber.BgColorEnum color) { mScene = scene; mHeapScruct.NumberOfChip = number_of_chip; mHeapScruct.Position = position; mHeapScruct.UpAngle = up_angle; mHeapScruct.Alpha = 1f; mCSpriteBgNumber = new CSpriteBgNumber(mScene, color, score); mHeapLayer = mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretChips); mHeapState = _eHeapState.Adding; }
//------------------------------------------------------------------------- public CSpriteScore(CRenderScene scene, EbVector3 position, float angle, int turret_no) { mScene = scene; mSpriteNumber = new CSpriteNumber(mScene, new CPanelDigitFactory(mScene)); mSpriteNumber.create(0, position, angle, CSpriteNumber._eNumberSize.Small1, CSpriteNumber._eNumberAlign.Right); mSpriteNumber.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretScore)); mBackground = mScene.getRenderObjectPool().newStillSprite(); mBackground.playAnimation("score_panel_" + turret_no); mBackground.setScale(1, 1f); setScore(0); #if UNITY_EDITOR mBackground.gameObject.name = "TkSpriteSpriteScore_score_panel_" + turret_no; #endif }
//------------------------------------------------------------------------- public void display(int score, TbDataParticle particle_data) { if (score <= 0) { return; } mSpriteNumber.create(score, 100, mPosition, mAngle + mCurrentAngle); mStillParticle = mScene.getParticlemanager().newParticle(particle_data.ParticlePrefabName); mStillParticle.setPosition(mPosition); mStillParticle.setLooping(false); mStillParticle.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretScoreBg)); mIsDisplay = true; initRotate(); }
//------------------------------------------------------------------------- void _hitFish(CRenderFish render_fish) { if (render_fish == null || render_fish.IsDie) { return; } uint et_player_rpcid = mBullet.getPlayerId(); if (mBullet.getScene().getMyPlayerId() == et_player_rpcid) { mBullet.getScene().getProtocol().c2sFishHit(et_player_rpcid, mBullet.getBulletObjId(), render_fish.FishObjId); } mBullet.signDestroy(); mIsSignDestroy = true; CRenderTurret turret = mBullet.getScene().getTurret(et_player_rpcid); if (turret == null) { return; } TbDataTurret vib_turret = turret.getVibTurret(); Dictionary <string, object> map_param = new Dictionary <string, object>(); map_param.Add("SourcePosition", getHitPosition(render_fish.Position, mBullet.getPosition())); map_param["NetColor"] = mBullet.getScene().getTurret(et_player_rpcid).getTurretColor(); map_param["PlayerId"] = et_player_rpcid; map_param["BulletHitFish"] = render_fish; TbDataBullet buttlt_data = mBullet.getBulletData(); mBullet.getScene().addEffect(buttlt_data.EffectCompose.Id, map_param, EffectTypeEnum.Client); if (!string.IsNullOrEmpty(mHitParticle.ParticlePrefabName)) { StillParticle particle = mScene.getParticlemanager().newParticle(mHitParticle.ParticlePrefabName); particle.setPosition(getHitPosition(render_fish.Position, mBullet.getPosition())); particle.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.FishHitParticle)); } }
//--------------------------------------------------------------------- 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); } }
//------------------------------------------------------------------------- public virtual void create(CRenderScene scene, TbDataFish vib_fish_data) { mScene = scene; mVibFishData = vib_fish_data; mFishCycleGap = mScene.getLayerAlloter().EachFishGap / 10f; }
//------------------------------------------------------------------------- public void setBgPosition(EbVector3 position, float up_angle) { mBackground.setPosition(position); mBackground.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.TurretScoreBg)); mBackground.setDirection(up_angle); }
//------------------------------------------------------------------------- public void create(uint et_player_rpcid, int bullet_objid, int bullet_vibid, float bullet_speed, int locked_fish_obj_id, EbVector3 turret_pos, float turret_angle, TbDataParticle hit_particle) { // vib mPlayerId = et_player_rpcid; mVibBullet = EbDataMgr.Instance.getData <TbDataBullet>(bullet_vibid); mPos = turret_pos; mfAngle = turret_angle; mBulletObjId = bullet_objid; mLockedFishObjid = locked_fish_obj_id; //mfBulletSpeed = mVibBullet.Speed; mfBulletSpeed = bullet_speed; // sprite bullet CRenderTurret turret = mScene.getTurret(mPlayerId); int turret_id = turret.getTurretId(); string bullet_anim = mVibBullet.Bullet0Animation; if (turret.isPower()) { bullet_anim = mVibBullet.ColorBulletAnimation; } else { switch (turret_id) { case 1: bullet_anim = mVibBullet.Bullet1Animation; break; case 2: bullet_anim = mVibBullet.Bullet2Animation; break; case 3: bullet_anim = mVibBullet.Bullet3Animation; break; case 4: bullet_anim = mVibBullet.Bullet4Animation; break; case 5: bullet_anim = mVibBullet.Bullet5Animation; break; case 6: bullet_anim = mVibBullet.Bullet6Animation; break; } } mBulletAnim = bullet_anim; mSpriteBullet = new CSpriteBullet(); mSpriteBullet.create(mScene, this, mBulletAnim, hit_particle); mSpriteBullet.setTrigger(true, 200); mSpriteBullet.setPosition(mPos); mSpriteBullet.setDirection(mfAngle); mSpriteBullet.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.Bullet)); mSpriteBullet.setScale((float)mVibBullet.BulletHeight / (float)mVibBullet.BulletPixelHeight); mScene.getLevel().addBullet(this); }