A downloadable game for Windows

Download NowName your own price

В этом прототипе я реализовал перемещение, прыжок и смерть персонажа. Опишу только перемещение, чтобы не писать слишком много. 

Кнопки: A или стрелка влево - перемещение влево, D или стрелка вправо - перемещение вправо, SPACE - прыжок.

Как реализовал перемещение:

Для начала перечислю переменные, которые использовал:

private Rigidbody2D rb; - тут буду хранить Rigidbody2D нашего персонажа

private float direction = 0f; - тут будет -1f или 1f, это будет зависеть от того какая клавиша нажата A или D. Если ничего не нажато, то будет 0f.

public float speed = 40f; - тут у меня скорость перемещения, изначально поставил 40f

Теперь по самой реализации:

void Start() // Метод встроенный в UnityEngine, срабатывает единожды 

{

    // тут получаю Rigidbody2D

    rb = GetComponent<Rigidbody2D>();

}

void Update() // Метод встроенный в UnityEngine, срабатывает в каждый кадр игровой сессии

{

    // Из класса Input беру метод GetAxisRaw для горизонтальной оси

    // при нажатии на кнопку A или на стрелку влево вернет -1, при нажатии на кнопку D или стрелки вправо вернет 1

    // если ничего не нажато вернет 0 

    direction = Input.GetAxisRaw("Horizontal");

}

private void FixedUpdate() // Метод встроенный в UnityEngine, срабатывает раз в период, который указан в настройках Unity

{   // Функция перемещения, она будет описана чуть ниже

    // Она находится здесь, потому что в документации Unity было указано, 

    // что для корректной работы физики лучше использовать FixedUpdate

    Move();

}

public void Move()

{   // Тут я обращаюсь к RidgitBody2D нашего персонажа, а именно к его скорости

    // и далее кладу туда двумерный вектор, у которого на месте координаты x

    // directin * speed * Time.fixedDeltaTime, тут как раз direction и контролирует направление движения

    // а Time.fixedDeltaTime - время с последнего обновления, оно помогает сделать движения плавными

    // по координате  y ничего не меняем

    rb.velocity = new Vector2(direction * speed * Time.fixedDeltaTime, rb.velocity.y);

}

Подсматривал сюда 

и сюда 


Download

Download NowName your own price

Click download now to get access to the following files:

PlatformerRGB.zip 22 MB