Example #1
0
 void _updateView()
 {
     foreach (var it in mSprite)
     {
         it.mFishStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale * mFixedScale, mAngle));
     }
 }
Example #2
0
        //-------------------------------------------------------------------------
        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;
            }
        }
Example #3
0
        //-------------------------------------------------------------------------
        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);
        }
Example #4
0
        //-------------------------------------------------------------------------
        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);
            }
        }
Example #5
0
        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();
            }
        }
Example #6
0
        //---------------------------------------------------------------------
        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);
            }
        }
Example #7
0
        //---------------------------------------------------------------------
        EbVector3 trans2local(EbVector3 point)
        {
            EbVector3 local = point - mPosition;

            local = CLogicUtility.getVector2ByRotateAngle(local, -mAngle);
            return(local);
        }
Example #8
0
        //---------------------------------------------------------------------
        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));
        }
Example #9
0
        //-------------------------------------------------------------------------
        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);
            }
        }
Example #10
0
        //-------------------------------------------------------------------------
        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);
        }
Example #11
0
        //-------------------------------------------------------------------------
        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);
        }
Example #12
0
        //-----------------------------------------------------------------------------
        void _initTurning()
        {
            mIsTurning       = true;
            mTargetDirection = (mPoints[mAtWhichPoint + 1] - mPoints[mAtWhichPoint]).normalized;
            float included_angle = _abs(CLogicUtility.getAngle(mTargetDirection - mDirection));

            mAngleTurning = included_angle / mTurningMaxTime;
        }
Example #13
0
 void _updateView()
 {
     foreach (var it in mStillSpriteList)
     {
         it.mStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale, mAngle));
         it.mStillSprite.setDirection(mAngle);
     }
 }
Example #14
0
 //-------------------------------------------------------------------------
 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);
     }
 }
Example #15
0
        //-----------------------------------------------------------------------------
        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;
        }
Example #16
0
        //-------------------------------------------------------------------------
        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++;
            }
        }
Example #17
0
 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));
     }
 }
Example #18
0
        //-------------------------------------------------------------------------
        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;
        }
Example #19
0
        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);
        }
Example #20
0
        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();
            }
        }
Example #21
0
        //-------------------------------------------------------------------------
        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());
        }
Example #22
0
        //-------------------------------------------------------------------------
        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);
        }
Example #23
0
        //-----------------------------------------------------------------------------
        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;
                }
            }
        }
Example #24
0
        //---------------------------------------------------------------------
        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();
        }
Example #25
0
        //-------------------------------------------------------------------------
        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
            }
        }
Example #26
0
        //-------------------------------------------------------------------------
        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);
                }
            }
        }
Example #27
0
        //-------------------------------------------------------------------------
        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());
        }
Example #28
0
        //---------------------------------------------------------------------
        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);
            }
        }
Example #29
0
        //-------------------------------------------------------------------------
        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);
        }
Example #30
0
        //-----------------------------------------------------------------------------
        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);
        }