void _updateView() { foreach (var it in mSprite) { it.mFishStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale * mFixedScale, mAngle)); } }
//------------------------------------------------------------------------- public void s2allcManualFire(int bullet_objid, float turret_angle, int turret_rate, int locked_fish_id) { bool is_me = (mScene.getMyPlayerId() == mPlayer.et_player_rpcid); if (!is_me) { mTurretAngle = turret_angle; mTurretRate = turret_rate; mBulletFirePos = mTurretPos + CLogicUtility.getDirection(mTurretAngle).normalized *mBarrelOffset; mCSpriteTurretShow.fireAt(mTurretAngle); int bullet_vibid = mVibTurret.BulletDataKey.Id; CRenderBullet bullet = new CRenderBullet(mScene); bullet.create(mPlayer.et_player_rpcid, bullet_objid, bullet_vibid, CBulletConstant.ManualSpeed, locked_fish_id, mBulletFirePos, mTurretAngle, mVibTurret.HitFishParticleDataKey); //int vib_compose_data_id = getVibTurret().EffectComposeFire.Data.ID; //mScene.addEffect(vib_compose_data_id, new Dictionary<string, object>(), EffectTypeEnum.Client); mScene.getListener().onSceneFire(mPlayer.et_player_rpcid, getPlayerGold()); } else { mfIdleSecond = 0.0f; mfObCountdown = 60.0f; } }
//------------------------------------------------------------------------- public void update(float elapsed_tm) { if (!mIsShockingScreen) { return; } mSecondsSinceSwitchBackground += elapsed_tm; EbVector3 background_new_position = EbVector3.Zero; if (_isInFirstFrame()) { background_new_position = CLogicUtility.getDirection(mShakeAngle) * mFirstFrameTimeDistance; } else if (_isInSecondFrame()) { background_new_position = CLogicUtility.getDirection(mShakeAngle) * mSecondFrameTimeDistance; } else if (_isInInitFrame()) { mSecondsSinceSwitchBackground = 0; } mShockBackgroundStillSprite.setPosition(background_new_position); }
//------------------------------------------------------------------------- void _updateDigitsLayout() { float offset = 0f; switch (mNumberInfo.Align) { case _eNumberAlign.Left: offset = 0.5f; break; case _eNumberAlign.Right: offset = mNumberInfo.DigitCount + 0.5f; break; default: if (_isOdd(mNumberInfo.DigitCount)) { offset = (int)(((float)mNumberInfo.DigitCount - 1f) / 2f); } else { offset = mNumberInfo.DigitCount / 2 - 0.5f; } break; } for (int i = mNumberInfo.DigitCount - 1; i >= 0; i--) { mListDigit[i].setPosition(mNumberInfo.Position + CLogicUtility.getDirection(mNumberInfo.UpAngle + 90) * (mNumberInfo.DigitCount - 1 - i - offset) * mNumberInfo.DigitGap); mListDigit[i].setDirection(mNumberInfo.UpAngle); } }
public override void update(float elapsed_tm) { if (Done) { return; } base.update(elapsed_tm); //线型点出鱼代码 if (getGeneratorData().mStartTime < getPassedTime()) { if (getGeneratorData().mAmount == 0) { return; } EbVector3 start_point = new EbVector3(getGeneratorData().mStartPointX, getGeneratorData().mStartPointY, 0); EbVector3 end_to_start = (new EbVector3(getGeneratorData().mEndPointX, getGeneratorData().mEndPointY, 0) - start_point); float angle = CLogicUtility.getRightAngle(CLogicUtility.getAngle(-end_to_start)); EbVector3 delta_position = end_to_start / getGeneratorData().mAmount; for (int i = getGeneratorData().mAmount; i > 0; i--) { BaseEntity entity = buildEntity(getGeneratorData().mFishVibID); entity.setPosition(start_point + delta_position * i); entity.setDirection(angle); } setDone(); } }
//--------------------------------------------------------------------- void updatePosition() { float clip = mVibFishData.CycleHeight; float offset = 0f; if (isOdd(mFishNumber)) { offset = (int)(((float)mFishNumber - 1f) / 2f); } else { offset = mFishNumber / 2 - 0.5f; } int index = 0; foreach (var it in mFishs) { it.setPosition(mPosition + new EbVector3(CLogicUtility.getDirection(mAngle + 90).x, CLogicUtility.getDirection(mAngle + 90).y, CLogicUtility.getDirection(mAngle + 90).z) * (index - offset) * clip); it.setDirection(mAngle); index++; } if (mRedBottom != null) { mRedBottom.setPosition(mPosition, mAngle); } }
//--------------------------------------------------------------------- EbVector3 trans2local(EbVector3 point) { EbVector3 local = point - mPosition; local = CLogicUtility.getVector2ByRotateAngle(local, -mAngle); return(local); }
//--------------------------------------------------------------------- public static float angle(CDirection left_direction, CDirection right_direction) { float left = CLogicUtility.getAngle(left_direction.mDirection); float right = CLogicUtility.getAngle(right_direction.mDirection); return(_abs(left - right)); }
//------------------------------------------------------------------------- public void update(float elapsed_tm) { if (mIsSignDestroy) { return; } CRenderFish fish = getLockFish(); if (fish == null || fish.IsDie) { EbVector3 cur_pos = CLogicUtility.getCurrentPos(mPos, mfAngle, mfBulletSpeed, elapsed_tm); mPos = cur_pos; mSpriteBullet.setPosition(mPos); mSpriteBullet.setDirection(mfAngle); } else { float angle = CLogicUtility.getAngle(fish.Position - mPos); mPos = CLogicUtility.getCurrentPos(mPos, angle, mfBulletSpeed, elapsed_tm); mSpriteBullet.setPosition(mPos); mSpriteBullet.setDirection(angle); } if (mScene.getSceneBox().check(ref mPos, ref mfAngle)) { mLockedFishObjid = -1; mSpriteBullet.setPosition(mPos); mSpriteBullet.setDirection(mfAngle); } }
//------------------------------------------------------------------------- public void setDirection(float angle) { EbVector3 vec = CLogicUtility.getDirection(angle); Vector3 direction = new Vector3(vec.x, vec.y, 0); mTransform.localRotation = Quaternion.FromToRotation(Vector3.up, direction); }
//------------------------------------------------------------------------- public void updateTurretAngle(EbVector3 target_position) { EbVector3 bullet_direction = target_position - mTurretPos; mTurretAngle = CLogicUtility.getAngle(bullet_direction); mBulletFirePos = mTurretPos + bullet_direction.normalized * mBarrelOffset; mCSpriteTurretShow.aimAt(mTurretAngle); }
//----------------------------------------------------------------------------- void _initTurning() { mIsTurning = true; mTargetDirection = (mPoints[mAtWhichPoint + 1] - mPoints[mAtWhichPoint]).normalized; float included_angle = _abs(CLogicUtility.getAngle(mTargetDirection - mDirection)); mAngleTurning = included_angle / mTurningMaxTime; }
void _updateView() { foreach (var it in mStillSpriteList) { it.mStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale, mAngle)); it.mStillSprite.setDirection(mAngle); } }
//------------------------------------------------------------------------- void _updateView() { foreach (var it in mStillSprites) { EbVector3 offset = new EbVector3(it.mOffset.x * mXScale, it.mOffset.y * mYScale, 0); it.mStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(offset, mAngle)); it.mStillSprite.setDirection(mAngle); } }
//----------------------------------------------------------------------------- public void create(EbVector3 init_position, float init_angle, float width, float height) { mInitPosition = init_position; mInitAngle = init_angle; mDirection = CLogicUtility.getDirection(mInitAngle); mDuration = width; mParaParamB = 4 * height / width; mParaParamA = -mParaParamB / width; }
//------------------------------------------------------------------------- void _updateBufferPosition() { EbVector3 right_direction = CLogicUtility.getVector2ByRotateAngle(CLogicUtility.getDirection(mUpAngle), 90).normalized; int index = 0; foreach (var i in mMapBuffer) { i.Value.setPosition(mFisrtPoint + right_direction * index * mGap, mUpAngle); index++; } }
void _updateView() { foreach (var it in mFishs) { it.mFishStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale, mAngle)); it.mFishStillSprite.setDirection(mAngle); } foreach (var it in mBackground) { it.mFishStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale, mAngle)); } }
//------------------------------------------------------------------------- public void setPosition(EbVector3 pos) { EbVector3 pixel_pos = CCoordinate.logic2toolkitPos(pos); pixel_pos += CLogicUtility.getVector2ByRotateAngle(mOffsetLocation, mDirection); Vector3 cur_pos; cur_pos.x = pixel_pos.x; cur_pos.y = pixel_pos.y; cur_pos.z = mTransform.position.z; mTransform.position = cur_pos; }
void updateView(CRenderFish fish) { EbVector3 turret_position = mCRenderTurret.getTurretPos(); EbVector3 fish_position = fish.Position; float turret_fish_distance = turret_position.getDistance(fish_position); int rectangle_count = (int)(turret_fish_distance / mRectangleGap); if (rectangle_count < 0) { rectangle_count = 0; } if (mRectangle.Count > rectangle_count) { int remove_count = mRectangle.Count - rectangle_count; do { mScene.getRenderObjectPool().freeStillSprite(mRectangle[0]); mRectangle.RemoveAt(0); --remove_count; } while (remove_count > 0); } else if (mRectangle.Count < rectangle_count) { int add_count = rectangle_count - mRectangle.Count; do { newRectangleSprite(); --add_count; } while (add_count > 0); } float angle = CLogicUtility.getAngle(fish_position - turret_position); float node_count = mRectangle.Count + 2; for (int i = 0; i < mRectangle.Count; i++) { mRectangle[i].setPosition(EbVector3.lerp(turret_position, fish_position, ((float)i + 1) / node_count)); mRectangle[i].setDirection(angle); } mArrow.setPosition(EbVector3.lerp(turret_position, fish_position, (node_count - 1) / node_count)); mArrow.setDirection(angle); mNumber.setPosition(fish_position); }
public override void update(float elapsed_tm) { if (Done) { return; } base.update(elapsed_tm); //线型点出鱼代码 if (getGeneratorData().mStartTime < getPassedTime()) { if (getGeneratorData().mAmount == 0) { return; } EbVector3 centre_position = new EbVector3(getGeneratorData().mStartPointX, getGeneratorData().mStartPointY, 0); float delta_angle = 360f / getGeneratorData().mAmount; int fish_vib_id = -1; for (int i = getGeneratorData().mAmount; i > 0; i--) { if (getGeneratorData().mRedFishIndex == i - 1) { fish_vib_id = getGeneratorData().mRedFishVibId; if (fish_vib_id <= 0) { fish_vib_id = getGeneratorData().mFishVibID; } } else { fish_vib_id = getGeneratorData().mFishVibID; } EbVector3 point_position = centre_position + CLogicUtility.getDirection(90 + delta_angle * i) * getGeneratorData().mRadius; BaseEntity entity = buildEntity( fish_vib_id); entity.setPosition(point_position); entity.setDirection(CLogicUtility.getRightAngle(CLogicUtility.getAngle(point_position - centre_position))); entity.setSpeed(getGeneratorData().mAngleSpeed * 2f * (float)Math.PI * getGeneratorData().mRadius / 360f); entity.setAngleSpeed(getGeneratorData().mAngleSpeed); } setDone(); } }
//------------------------------------------------------------------------- public void doOtherFire(int bullet_objid, float bullet_speed) { mBulletFirePos = mTurretPos + CLogicUtility.getDirection(mTurretAngle).normalized *mBarrelOffset; mCSpriteTurretShow.fireAt(mTurretAngle); int bullet_vibid = mVibTurret.BulletDataKey.Id; CRenderBullet bullet = new CRenderBullet(mScene); bullet.create(mPlayer.et_player_rpcid, bullet_objid, bullet_vibid, bullet_speed, _getLockedFishIdFromLockedBuffer(), mBulletFirePos, mTurretAngle, mVibTurret.HitFishParticleDataKey); mScene.getListener().onSceneFire(mPlayer.et_player_rpcid, getPlayerGold()); }
//------------------------------------------------------------------------- public CSpriteCounter(CRenderScene scene, EbVector3 origin_position, float up_angle) { mScene = scene; mCounterScruct.MovingSpeed = 100f; mCounterScruct.OriginPosition = origin_position; mCounterScruct.UpAngle = up_angle; mCounterScruct.GapBetweenHeaps = mScene.getRenderConfigure().ChipHSpace; mCounterScruct.RightAngle = CLogicUtility.getRightAngle(up_angle); mCounterScruct.RightDistance = CLogicUtility.getDirection(mCounterScruct.RightAngle) * mCounterScruct.GapBetweenHeaps; mCounterState = _eCounterState.Adding; mCSpriteHeapGroup = new CSpriteHeapGroup(4); mScoreCounterMap.create(mScene.getRenderConfigure().ScoreGap); }
//----------------------------------------------------------------------------- void _calculateDirection(float elapsed_tm) { if (mIsTurning) { float included_angle = _abs(CLogicUtility.getAngle(mTargetDirection - mDirection)); float t = mAngleTurning * elapsed_tm / included_angle; mDirection = EbVector3.lerp(mDirection, mTargetDirection, t); if (t >= 1) { mIsTurning = false; } } }
//--------------------------------------------------------------------- public override void update(float elapsed_tm) { mOutFishDelay -= elapsed_tm; if (mOutFishDelay >= 0) { return; } if (Done) { return; } var list_serverparam = getServerParam(); int index = -1; int normal_fish_vib_id = int.Parse(list_serverparam[++index]); int red_fish_vib_id = int.Parse(list_serverparam[++index]); int red_fish_index = int.Parse(list_serverparam[++index]); int fish_count = int.Parse(list_serverparam[++index]); float position_x = float.Parse(list_serverparam[++index]); float position_y = float.Parse(list_serverparam[++index]); int red_fish_obj_id = int.Parse(list_serverparam[++index]); if (index + 2 == (int)getServerParam().Count) { position_x = float.Parse(list_serverparam[++index]); position_y = float.Parse(list_serverparam[++index]); } EbVector3 position = new EbVector3(position_x, position_y, 0); float angle = 360.0f / fish_count; for (int i = 0; i < fish_count; i++) { float direction = angle * i; int current_fish_vib_id = normal_fish_vib_id; if (i == red_fish_index) { current_fish_vib_id = red_fish_vib_id; } BaseEntity entity = buildEntity(current_fish_vib_id); entity.addRoute(RouteHelper.buildLineRoute(position, CLogicUtility.getDirection(direction), 2000)); } setDone(); }
//------------------------------------------------------------------------- void create(EbVector3 cur_pos) { string animation_name = ""; float scale_x = 1f; float scale_y = 1f; float width_x = 10f; float width_y = 60f; if (mScene.getLevel().getRandoNumber(0, 100) < 50) { animation_name = "lightening-yellow"; scale_y = width_y / 132f; width_x = 360f; } else { animation_name = "lightning-green"; scale_y = width_y / 85f; width_x = 420f; } foreach (var n in fish_list) { float distance = n.Position.getDistance(cur_pos); if (distance > 1100) { continue; } EbVector3 middle_pos = EbVector3.lerp(n.Position, cur_pos, 0.5f); StillSprite still_sprite = mScene.getRenderObjectPool().newStillSprite(); still_sprite.setPosition(middle_pos); still_sprite.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.FishSwim)); still_sprite.setDirection(CLogicUtility.getAngle(CLogicUtility.getVector2ByRotateAngle(cur_pos - n.Position, 90))); still_sprite.setScale(n.Position.getDistance(cur_pos) / width_x, scale_y); still_sprite.playAnimation(animation_name); mListLight.Add(still_sprite); #if UNITY_EDITOR still_sprite.gameObject.name = "TkSpriteEffectLighting_" + animation_name; #endif } }
//------------------------------------------------------------------------- public void update(float elapsed_tm) { mCurrentAngle += elapsed_tm * mAngleSpeed; EbVector3 right_direction = CLogicUtility.getVector2ByRotateAngle(CLogicUtility.getDirection(mUpAngle), 90).normalized; EbVector3 postion = mFisrtPoint + CLogicUtility.getDirection(mCurrentAngle) * mRadius; for (int i = 0; i < mMapBuffer.Count; i++) { var item = mMapBuffer.ElementAt(i); item.Value.update(elapsed_tm); item.Value.setPosition(postion + right_direction * i * mGap, mUpAngle); if (item.Value.canDestroy()) { item.Value.destroy(); mMapBuffer.Remove(item.Key); } } }
//------------------------------------------------------------------------- public void doLocalFire(int bullet_objid, float bullet_speed) { mBulletFirePos = mTurretPos + CLogicUtility.getDirection(mTurretAngle).normalized *mBarrelOffset; mCSpriteTurretShow.fireAt(mTurretAngle); int bullet_vibid = mVibTurret.BulletDataKey.Id; CRenderBullet bullet = new CRenderBullet(mScene); bullet.create(mPlayer.et_player_rpcid, bullet_objid, bullet_vibid, bullet_speed, _getLockedFishIdFromLockedBuffer(), mBulletFirePos, mTurretAngle, mVibTurret.HitFishParticleDataKey); int vib_compose_data_id = getVibTurret().EffectComposeFire.Id; mScene.addEffect(vib_compose_data_id, new Dictionary <string, object>(), EffectTypeEnum.Client); mScene.getListener().onSceneFire(mPlayer.et_player_rpcid, getPlayerGold()); }
//--------------------------------------------------------------------- public void update(float elapsed_tm) { mLifeCounter -= elapsed_tm; if (mLifeCounter < 0) { CLogicTurret turret = mScene.getTurret(mPlayerId); if (turret != null) { turret.removeBullet(mBulletObjId); } return; } // 不是机器人则直接返回 if (mBulletCollider == null) { return; } CLogicFish fish = getLockFish(); if (fish == null || fish.IsDie) { EbVector3 cur_pos = CLogicUtility.getCurrentPos(mPos, mfAngle, mfBulletSpeed, elapsed_tm); mPos = cur_pos; mBulletCollider.setPosition(mPos); } else { mfAngle = CLogicUtility.getAngle(fish.Position - mPos); mPos = CLogicUtility.getCurrentPos(mPos, mfAngle, mfBulletSpeed, elapsed_tm); mBulletCollider.setPosition(mPos); mBulletCollider.setDirection(mfAngle); } if (mScene.getSceneBox().check(ref mPos, ref mfAngle)) { mLockedFishObjid = -1; mBulletCollider.setPosition(mPos); mBulletCollider.setDirection(mfAngle); } }
//------------------------------------------------------------------------- void _updateChipsView(EbVector3 position, float up_angle) { float chip_gap = mScene.getRenderConfigure().ChipVSpace; float chip_number_offset = mScene.getRenderConfigure().ChipNumberOffset; EbVector3 new_position = EbVector3.Zero; int index = 0; foreach (var it in mStackChips) { new_position = position; new_position += CLogicUtility.getDirection(up_angle) * (chip_gap * index++); it.setPosition(new_position); it.setDirection(up_angle); } new_position += CLogicUtility.getDirection(up_angle) * chip_number_offset; mCSpriteBgNumber.setPosition(new_position, up_angle); }
//----------------------------------------------------------------------------- public void next(float elapsed_tm, float speed) { if (mIsEndRoute) { return; } mTime += elapsed_tm; if (mTime >= mDuration) { mPosition = mInitPosition; mIsEndRoute = true; return; } float delta_y = _getCurveValue(mTime); mPosition = mInitPosition + CLogicUtility.getVector2ByRotateAngle(new EbVector3(0, delta_y, 0), mInitAngle); }