Как реализовать движение на основе сетки в 2D Direction 2D-игре? - PullRequest
0 голосов
/ 19 октября 2019

Я работаю над 2D-игрой с 4 направлениями (вверх, вниз, влево, вправо), и она будет с движением на основе сетки, но я не могу понять, как это сделать.

игрок публичного класса: персонаж {

/// <summary>
/// Overridin the characters update function, so that we can execute our own functions
/// </summary>
protected override void Update()
{
    //Executes the GetInput function
    GetInput();



    base.Update();
}

/// <summary>
/// Listen's to the players input
/// </summary>
private void GetInput()
{
    direction = Vector2.zero;





    //Movement
    if (Input.GetKey(KeyCode.UpArrow))
    {
        direction += Vector2.up;
    }
    else if (Input.GetKey(KeyCode.LeftArrow))
    {
        direction += Vector2.left;
    }
    else if (Input.GetKey(KeyCode.DownArrow))
    {
        direction += Vector2.down;
    }
    else if (Input.GetKey(KeyCode.RightArrow))
    {
        direction += Vector2.right;
    }

}

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете сделать это двумя способами:

  1. Вы можете просто добавить значение для свойства x и y и убедиться, что на них нет плавающих чисел. то есть: x + 1 при движении вправо, x - 1 при движении влево и т. д.

  2. Создание сетки, к которой игрок мог бы ссылаться на свое движение.

Вы получите больше пользы, если сначала создадите сетку и привязите своего персонажа к этим сеткам. Таким образом, вы можете ограничить персонажа, чтобы он легко следовал за сеткой в ​​форме, а также использовали сетку для ИИ или NPC, где они могут находить пути.

...