Управление игроком с клавиатуры

Столкновения - это отличная вещь, но нам крайне необходимо, чтобы наш персонаж двигался. Возможно, вы подумали заглянуть в документацию и найти способ добавить слушателя к событию, но нам это не нужно. Phaser имеет встроенный менеджер клавиатуры, и одним из его преимуществ является небольшая удобнай функция:

cursors = this.input.keyboard.createCursorKeys();

Эта функция добавляет четыре свойства к объекту cursors: up, down, left, right, которые являются экземплярами объекта Key. Все, что нам нужно сделать, это проверить их статус во время цикла обновления update:

if (cursors.left.isDown)
{
    player.setVelocityX(-160);

    player.anims.play('left', true);
}
else if (cursors.right.isDown)
{
    player.setVelocityX(160);

    player.anims.play('right', true);
}
else
{
    player.setVelocityX(0);

    player.anims.play('turn');
}

if (cursors.up.isDown && player.body.touching.down)
{
    player.setVelocityY(-330);
}

Хотя мы добавили много кода, все должно быть довольно понятным. Первое, что делает этот код - проверяет нажата ли левая клавиша. Если это так, мы устанавливаем отрицательную горизонтальную скорость и запускаем левую анимацию. Если нажата правая клавиша, мы делаем наоборот. Спрайт игрока будет двигаться только при нажатии клавиши и останавливаться, как только она будет отпущена. Phaser также позволяет создавать более сложные движения, с импульсом и ускорением, но нам это не нужно для этой игры. Последняя часть проверки клавиши сбрасывает скорость и устанавливает анимацию на «turn», когда ни одна клавиша не нажата.

Прыжок

Последняя часть кода добавляет возможность прыжка. Для прыжка используется кнопка вверх и мы проверяем, нажата ли она. Мы не хотим, чтобы наш персонаж прыгал в воздухе, поэтому мы также проверяем, касается ли он платформы. Если оба эти условия выполнены, мы устанавливаем вертикальную скорость -330 пикселей в секунду. Игрок автоматически упадет на землю из-за гравитации. После создания элементов управления у нас есть игровой мир, который мы можем начать исследовать. Запустите part7.html и поиграйте. Попробуйте увеличить или уменьшить значение для прыжка, чтобы посмотреть, какой это будет иметь эффект.

Назад       Далее