Как мне установить ограничение по высоте в игре на холсте?

#javascript #html

#javascript #HTML

Вопрос:

Итак, я немного новичок в JS, и я хотел бы знать, как установить ограничение по высоте или высоте в этой небольшой игре на холсте. Это практически код W3, но учитель сказал нам просто смоделировать его. Я хотел исправить досадную проблему простого перепрыгивания через карту, чтобы избежать препятствий.

Я действительно не знаю, что попробовать, поскольку высота задается canvas . Я попытался создать новую функцию на основе hitBottom(), которая не удалась.

Просто хотел установить ограничение по высоте или высоте. Вот исходный источник: Здесь . Все буквально то же самое, кроме цветов.

Комментарии:

1. Создайте метод, аналогичный тому, в hitBottom котором вы проверяете, достигла ли ваша координата y предела. Если это произойдет, сбросьте скорость гравитации обратно на 0, чтобы предотвратить дальнейшее повышение.

Ответ №1:

Что вы хотите сделать, так это посмотреть, является ли текущая позиция y ниже 0, поскольку это будет «крыша» комнаты. Если позиция игрока y ниже 0, сбросьте ее обратно на 0 и остановите ускорение.

     this.hitTop = function() {
        if (this.y < 0) {
            this.y = 0;
            this.gravitySpeed = 0;
        }
    }
  

И к функции newpos вы хотите вызвать эту функцию, поэтому добавьте это:

this.hitTop();

Ответ №2:

Проверьте позицию y в newPos методе после увеличения позиции y. Если оно меньше 0 , то сделайте это 0 . Код должен выглядеть следующим образом;

 this.newPos = function() {
    this.gravitySpeed  = this.gravity;
    this.x  = this.speedX;
    this.y  = this.speedY   this.gravitySpeed;

    /* Add below 4 lines */
    if (this.y <= 0) {
        this.y = 0;
        this.gravitySpeed = 0;
    }
    /* Add above 4 lines */

    this.hitBottom();
}
  

Счастливого кодирования 😉