Beispiel #1
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);
            }
        }
Beispiel #2
0
        //---------------------------------------------------------------------
        EbVector3 trans2local(EbVector3 point)
        {
            EbVector3 local = point - mPosition;

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

            mAngleTurning = included_angle / mTurningMaxTime;
        }
Beispiel #9
0
 void _updateView()
 {
     foreach (var it in mFishs)
     {
         it.mFishStillSprite.setPosition(mPosition + CLogicUtility.getVector2ByRotateAngle(it.mOffset * mScale, mAngle));
         it.mFishStillSprite.setDirection(mAngle);
     }
     mCycle.setPosition(mPosition);
     mCycle.setDirection(mAngle);
 }
Beispiel #10
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;
        }
Beispiel #11
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++;
            }
        }
Beispiel #12
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);
        }
Beispiel #13
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());
        }
Beispiel #14
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();
            }
        }
Beispiel #15
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;
                }
            }
        }
Beispiel #16
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();
        }
Beispiel #17
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
            }
        }
Beispiel #18
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);
                }
            }
        }
Beispiel #19
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());
        }
Beispiel #20
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);
            }
        }
Beispiel #21
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);
        }
Beispiel #22
0
        //---------------------------------------------------------------------
        public override void update(float elapsed_tm)
        {
            if (Done)
            {
                return;
            }

            base.update(elapsed_tm);

            //线型点出鱼代码
            if (getGeneratorData().mStartTime < getPassedTime())
            {
                EbVector3 position = new EbVector3(getGeneratorData().mStartPointX, getGeneratorData().mStartPointY, 0);

                BaseEntity entity = buildEntity(getGeneratorData().mFishVibID);
                entity.addRoute(RouteHelper.buildLineRoute(position, CLogicUtility.getDirection(getGeneratorData().mStartAngle), 1153.7f));
                entity.setSpeed(getGeneratorData().mSpeed);

                setDone();
            }
        }
        //---------------------------------------------------------------------
        public override void update(float elapsed_tm)
        {
            if (Done)
            {
                return;
            }

            base.update(elapsed_tm);

            if (getGeneratorData().mStartTime < getPassedTime())
            {
                if (getGeneratorData().mAmount != 0)
                {
                    float      delta_angle = 360f / getGeneratorData().mAmount;
                    EbVector3  position    = new EbVector3(getGeneratorData().mGenerationPointX, getGeneratorData().mGenerationPointY, 0);
                    BaseEntity base_entity = null;
                    for (int i = getGeneratorData().mAmount; i > 0; i--)
                    {
                        if (getGeneratorData().mRadius == 0)
                        {
                            base_entity = buildEntity(getGeneratorData().mFishVibID);
                            base_entity.setPosition(position);
                            base_entity.setDirection(delta_angle * i);
                        }
                        else
                        {
                            base_entity = buildEntity(getGeneratorData().mFishVibID);
                            base_entity.setPosition(position + CLogicUtility.getDirection(delta_angle * i) * getGeneratorData().mRadius);
                            base_entity.setDirection(delta_angle * i);
                        }

                        base_entity.setSpeed(getGeneratorData().mSpeed);
                    }
                }

                setDone();
            }
        }
Beispiel #24
0
        //-------------------------------------------------------------------------
        public void update(float elapsed_tm)
        {
            if (mDynamicSystem != null)
            {
                mTotalElapsedTime += elapsed_tm;
                EbVector3 acc = mDynamicSystem.getAcce(mTotalElapsedTime, mViSpeed);
                if (mDynamicSystem.IsDelay)
                {
                }
                else
                {
                    mViSpeed  = mViSpeed + acc * elapsed_tm;
                    mPosition = mPosition + mViSpeed * elapsed_tm;
                    mAngle    = CLogicUtility.getAngle(mViSpeed);

                    if (mDynamicSystem.IsEnd)
                    {
                        mIsEndRoute = true;
                    }
                }
            }
            else
            if (mIRoute != null)
            {
                mIRoute.next(elapsed_tm, mSpeed);
                mPosition = mIRoute.Position;
                mAngle    = CLogicUtility.getAngle(mIRoute.Direction);

                if (mIRoute.IsEndRoute)
                {
                    mIsEndRoute = true;
                }
            }
            else
            {
                //mAngle += mAngleSpeed * elapsed_tm;

                float newAngle = mAngle + mAngleSpeed * elapsed_tm;

                if (mAngleSpeed > 0)
                {
                    if (mAngle <= 180 && newAngle > 180)
                    {
                        mAngle = newAngle - 360;
                    }
                    else
                    {
                        mAngle = newAngle;
                    }
                }
                else
                {
                    //if (mAngle <= -180) mAngle = mAngle - 180;
                    if (mAngle > -180 && newAngle <= 180)
                    {
                        mAngle = newAngle + 360;
                    }
                    else
                    {
                        mAngle = newAngle;
                    }
                }

                //mAngle = regularAngle(mAngle);

                mPosition += CLogicUtility.getDirection(mAngle) * mSpeed * elapsed_tm;
            }

            _updateState();
        }
Beispiel #25
0
        //---------------------------------------------------------------------
        float randomTurretAngle()
        {
            EbVector3 bullet_direction = randomTarget() - mTurret.getTurretPos();

            return(CLogicUtility.getAngle(bullet_direction));
        }
Beispiel #26
0
        //---------------------------------------------------------------------
        public bool check(ref EbVector3 position, ref float direction)
        {
            EbVector3 dir_vector = CLogicUtility.getDirection(direction);

            if (position.x < -CCoordinate.LogicSceneLength / 2)
            {
                if (dir_vector.x == 0)
                {
                    return(false);
                }
                EbVector3 return_postion = new EbVector3();
                return_postion.x = -CCoordinate.LogicSceneLength / 2;
                return_postion.y = straightLineEquationByX(position, dir_vector, return_postion.x);
                return_postion.z = position.z;
                position         = return_postion;
                dir_vector.x     = -dir_vector.x;
                direction        = CLogicUtility.getAngle(dir_vector);
                return(true);
            }

            if (position.x > CCoordinate.LogicSceneLength / 2)
            {
                if (dir_vector.x == 0)
                {
                    return(false);
                }
                EbVector3 return_postion = new EbVector3();
                return_postion.x = CCoordinate.LogicSceneLength / 2;
                return_postion.y = straightLineEquationByX(position, dir_vector, return_postion.x);
                return_postion.z = position.z;
                position         = return_postion;
                dir_vector.x     = -dir_vector.x;
                direction        = CLogicUtility.getAngle(dir_vector);
                return(true);
            }

            if (position.y < -CCoordinate.LogicSceneWidth / 2)
            {
                if (dir_vector.y == 0)
                {
                    return(false);
                }
                EbVector3 return_postion = new EbVector3();
                return_postion.y = -CCoordinate.LogicSceneWidth / 2;
                return_postion.x = straightLineEquationByY(position, dir_vector, return_postion.y);
                return_postion.z = position.z;
                position         = return_postion;
                dir_vector.y     = -dir_vector.y;
                direction        = CLogicUtility.getAngle(dir_vector);
                return(true);
            }

            if (position.y > CCoordinate.LogicSceneWidth / 2)
            {
                if (dir_vector.y == 0)
                {
                    return(false);
                }
                EbVector3 return_postion = new EbVector3();
                return_postion.y = CCoordinate.LogicSceneWidth / 2;
                return_postion.x = straightLineEquationByY(position, dir_vector, return_postion.y);
                return_postion.z = position.z;
                position         = return_postion;
                dir_vector.y     = -dir_vector.y;
                direction        = CLogicUtility.getAngle(dir_vector);
                return(true);
            }

            return(false);
        }
Beispiel #27
0
 //---------------------------------------------------------------------
 public CAngle toAngle()
 {
     return(new CAngle(CLogicUtility.getAngle(mDirection)));
 }
Beispiel #28
0
 //---------------------------------------------------------------------
 public CDirection(float angle)
 {
     mDirection = CLogicUtility.getDirection(angle);
 }
Beispiel #29
0
        //---------------------------------------------------------------------
        float getTurretAngle(EbVector3 target_position)
        {
            EbVector3 bullet_direction = target_position - mTurret.getTurretPos();

            return(CLogicUtility.getAngle(bullet_direction));
        }
Beispiel #30
0
 //-------------------------------------------------------------------------
 public void setTurretAngle(float turret_angel)
 {
     mTurretAngle   = turret_angel;
     mBulletFirePos = mTurretPos + CLogicUtility.getDirection(mTurretAngle).normalized *mBarrelOffset;
     mCSpriteTurretShow.aimAt(mTurretAngle);
 }