Пример #1
0
    public void Init(SpriteRenderer renderer, SlowPoint point, PlayerDeploy deploy)
    {
        transform.SetLayer(Layers.Player);

        Deploy         = deploy;
        SpriteRenderer = renderer;
        // Material = renderer.material;

        RedPoint  = point;
        Actions   = ControllerPc.GetActions();
        _aniStyle = PlayerMoveStyle.Idle;

        transform.localScale = Vector3.one * deploy.scale;
        InitRigid();

        SupportMgr = new PlayerSupportMgr();
        SupportMgr.Init(this);

        Instance = this;
    }
Пример #2
0
    //移动
    private void Move(Vector3 dir)
    {
        var moveSpeed = InSlow ? Deploy.slowSpeed : Deploy.speed;
        var targetPos = transform.position + dir * Time.fixedDeltaTime * moveSpeed;

        Rigid2D.MovePosition(targetPos);

        if (MathUtility.FloatEqual(dir.x, 0))
        {
            AniStyle = PlayerMoveStyle.Idle;
            return;
        }

        if (dir.x > 0 && AniStyle != PlayerMoveStyle.RightIdle)
        {
            AniStyle = PlayerMoveStyle.RightMove;
        }

        if (dir.x < 0 && AniStyle != PlayerMoveStyle.LeftIdle)
        {
            AniStyle = PlayerMoveStyle.LeftMove;
        }
    }
Пример #3
0
    //移动动画处理
    private void UpdateAnimation()
    {
        if (GameSystem.FixedFrameCount < _nextAnimatorFrame)
        {
            return;
        }

        List <Sprite> sprites;

        if (SpriteDic.TryGetValue(AniStyle, out sprites))
        {
            if (sprites.Count > 0)
            {
                SpriteRenderer.sprite = sprites[_currAniIdx];
                _currAniIdx++;


                if (_currAniIdx >= sprites.Count)
                {
                    if (AniStyle == PlayerMoveStyle.LeftMove)
                    {
                        AniStyle = PlayerMoveStyle.LeftIdle;
                    }
                    else if (AniStyle == PlayerMoveStyle.RightMove)
                    {
                        AniStyle = PlayerMoveStyle.RightIdle;
                    }
                    else
                    {
                        _currAniIdx = 0;
                    }
                }
            }
        }

        _nextAnimatorFrame = GameSystem.FixedFrameCount + Deploy.frameSpeed[(int)AniStyle];
    }
Пример #4
0
 //停止移动
 private void StopMove()
 {
     AniStyle = PlayerMoveStyle.Idle;
 }