Ejemplo n.º 1
0
        internal LSLConstantJumpDescription GetConstantJump()
        {
            if (!HasElseIfStatements && !HasElseStatement)
            {
                return(null);
            }

            var cmp = new JumpCmp();
            var i   = new HashSet <LSLConstantJumpDescription>(IfStatement.ConstantJumps, cmp);

            if (HasElseIfStatements)
            {
                foreach (var node in ElseIfStatements)
                {
                    var ie = new HashSet <LSLConstantJumpDescription>(node.ConstantJumps, cmp);
                    i.IntersectWith(ie);
                }
            }
            if (HasElseStatement)
            {
                var e = new HashSet <LSLConstantJumpDescription>(ElseStatement.ConstantJumps, cmp);
                i.IntersectWith(e);
            }

            var x = i.SingleOrDefault();

            if (x != null)
            {
                x = new LSLConstantJumpDescription(x, this);
            }

            return(x);
        }
Ejemplo n.º 2
0
    }//FixedUpdate

    public void Update()
    {
        if (Physics2D.gravity.y != -Gravity)
        {
            Physics2D.gravity = new Vector2(Physics2D.gravity.x, -Gravity);
        }

        Vector3 deltaMovement = velocity;

        float horizontalAxis = Input.GetAxis("Horizontal");

        deltaMovement.x = horizontalAxis * Time.deltaTime * ActiveSpeed;

        if (horizontalAxis < 0 && IsFacingRight)
        {
            Flip();
        }
        if (horizontalAxis > 0 && !IsFacingRight)
        {
            Flip();
        }

        //if (Input.GetButtonDown(JumpCmp.Props.JumpInputName)) {
        //    deltaMovement.y = JumpCmp.Jump(deltaMovement).y;
        //}

        //if (Input.GetButtonUp(JumpCmp.Props.JumpInputName)) {
        //    bIsStopJump = true;
        //}

        if (bIsStopJump)
        {
            if (JumpCmp.IsMinHeightReached)
            {
                deltaMovement.y = JumpCmp.Stop(deltaMovement).y;
                bIsStopJump     = false;
            }
        }

        //_jumpControls.OnJump(ref deltaMovement);
        //_jumpControls.JumpCorrection(ref deltaMovement, 1);

        deltaMovement.y += Physics2D.gravity.y * Time.deltaTime;
        _collisionDetection.Move(ref deltaMovement);
        if (Mathf.Abs(deltaMovement.y) <= 0.001)
        {
            deltaMovement.y = 0;
        }

        velocity = deltaMovement;

        transform.Translate(velocity);
    }//Update