コード例 #1
0
ファイル: Player.cs プロジェクト: Airwaffle/ludumdare48
    void HandleXMovement()
    {
        if (Time.time - startTime < notActionableForFirstSeconds)
        {
            return;
        }

        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
        {
            xVel -= xspeed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            xVel += xspeed * Time.deltaTime;
        }

        if (xVel > maxXVel)
        {
            xVel = maxXVel;
        }

        if (xVel < -maxXVel)
        {
            xVel = -maxXVel;
        }

        if (grounded)
        {
            xVel *= 0.9f;
        }

        if (xVel > 0)
        {
            mirrored             = 1;
            transform.localScale = new Vector3(transform.localScale.y, transform.localScale.y, transform.localScale.z);
        }
        else if (xVel < 0)
        {
            mirrored             = -1;
            transform.localScale = new Vector3(transform.localScale.y * -1, transform.localScale.y, transform.localScale.z);
        }

        Vector2      frontPos  = world.GetPixelPosition(front.position);
        CollsionType collision = world.IsCollision(frontPos);

        if (collision == CollsionType.ground)
        {
            xVel = 0;
        }
        else if (collision == CollsionType.lava)
        {
            Die();
        }
        else if (collision == CollsionType.bounce)
        {
            xVel *= -2;
        }
    }
コード例 #2
0
ファイル: Player.cs プロジェクト: Airwaffle/ludumdare48
    void Update()
    {
        if (dead)
        {
            return;
        }

        HandleXMovement();
        HandleJumpInput();

        if (yVel < 0)
        {
            Vector2      headPos       = world.GetPixelPosition(head.position);
            CollsionType headCollision = world.IsCollision(headPos);
            if (headCollision == CollsionType.ground)
            {
                yVel = -yVel;
            }
            else if (headCollision == CollsionType.lava)
            {
                Die();
            }
            else if (headCollision == CollsionType.bounce)
            {
                yVel = -yVel * 2;
            }
        }

        yVel += gravity * scale * Time.deltaTime;
        if (yVel > maxYVel)
        {
            yVel = maxYVel;
        }

        if (roped)
        {
            HandleRopeMovement();
            rope.UpdateRope();
        }

        if (!grounded)
        {
            yPos -= yVel;
        }
        xPos += xVel;

        Vector3 newPos = new Vector3(xPos, yPos, 1);

        transform.position = newPos;

        Vector2      screenPos = world.GetPixelPosition(feet.position);
        CollsionType collision = world.IsCollision(screenPos);

        if (roped)
        {
            collision = CollsionType.none;
        }

        if (collision == CollsionType.ground)
        {
            if (grounded != true)
            {
                camera.Shake();
            }
            grounded = true;
            ToggleRope(false);
        }
        else
        {
            grounded = false;
        }

        if (collision == CollsionType.lava)
        {
            Die();
        }
        else if (collision == CollsionType.bounce)
        {
            Bounce();
            audio.clip = bounceClip;
            audio.Play();
        }

        rope.UpdateGraphics();
    }