Как я могу изменить частоту отскока объекта, не уменьшая его скорость x? - PullRequest
0 голосов
/ 23 июня 2019

Я относительно новичок в программировании.Я работаю над 2D-платформером и пытаюсь заставить объект подпрыгивать на постоянной высоте, с довольно высокой скоростью перемещения, с небольшим пространством между отскоками.У меня есть первые два, но у меня возникли некоторые проблемы с последней частью.

По сути, я хочу, чтобы объект падал на землю чаще, чем это происходит, но пока, единственный способ, которым я достигто есть, уменьшая скорость движения, что заставляет его двигаться слишком медленно.

Вот некоторый код, чтобы показать, что я делаю (я вырезал все, что не имеет отношения к фактическому подпрыгиванию):

public class Ball : MonoBehaviour
{
    [SerializeField] float moveSpeed = 12.0f;
    [SerializeField] float bounce = 180.0f;

    Rigidbody2D myRigidbody;
    CircleCollider2D myCollider;

    void Start()
    {
        myRigidbody = GetComponent<Rigidbody2D>();
        myCollider = GetComponent<CircleCollider2D>();
    }

    void FixedUpdate()
    {
        Move();
        Bounce();
    }

    private void Move()
    {
        myRigidbody.velocity = new Vector2(moveSpeed, myRigidbody.velocity.y);
    }

    private void Bounce()
    {
        if (!myCollider.IsTouchingLayers(LayerMask.GetMask("Ground"))) { return; }

        myRigidbody.AddForce(Vector2.up * bounce);
    }
}

Вот изображение, иллюстрирующее то, о чем я говорю:

enter image description here

Пример 1 на этом изображении - результат, который у меня есть на данный момент,в то время как пример 2 - результат, который я хочу.

Может кто-нибудь сказать мне, как я могу достичь результата примера 2, не уменьшая скорость движения?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...