Я создаю игру для прорыва Javascript, но у меня проблема с удержанием мяча в стенах.

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

Я пробовал несколько вариантов if / else, чтобы исправить это, но не могу понять, почему код не работает. JavaScript код выглядит следующим образом:

function createPaddle(gw) { let x0 = (gw.getWidth() - PADDLE_WIDTH) / 2; let y0 = PADDLE_Y; let paddle = GRect(x0, y0, PADDLE_WIDTH, PADDLE_HEIGHT); paddle.setFilled(true); gw.add(paddle); let mouseMoveAction = function(e) { let x = e.getX() - (PADDLE_WIDTH / 2); let y = PADDLE_Y; if (x {amp}gt; 0 {amp}amp;{amp}amp; x {amp}lt;= gw.getWidth() - PADDLE_WIDTH) { paddle.setLocation(x, y); } }; gw.addEventListener("mousemove", mouseMoveAction); } function createBall(gw) { let centerX = gw.getWidth() / 2; let centerY = gw.getHeight() / 2; let x0 = centerX - (BALL_SIZE / 2); let y0 = centerY - (BALL_SIZE / 2); let ball = GOval(x0, y0, BALL_SIZE, BALL_SIZE); ball.setFilled(true); gw.add(ball); let clickAction = function(e) { let vy = INITIAL_Y_VELOCITY; let vx = randomReal(MIN_X_VELOCITY, MAX_X_VELOCITY); if (randomChance()) vx = -vx; let step = funtion() { if (ball.getX() {amp}gt; 0 {amp}amp;{amp}amp; ball.getY() {amp}gt; 0 {amp}amp;{amp}amp; ball.getX() {amp}lt; gw.getWidth() - BALL_SIZE {amp}amp;{amp}amp; ball.getY() {amp}lt; gw.getHeight() - BALL_SIZE) { ball.move(vx, vy); } if (ball.getX() {amp}lt; 0 || ball.getX() {amp}gt; gw.getWidth() - BALL_SIZE) { vx = -vx; ball.move(vx, vy); } if (ball.getY() {amp}lt; 0) { vy = -vy; ball.move(vx, vy); } else if (ball.getY() {amp}gt; gw.getHeight() - BALL_SIZE) { clearInterval(timer); } }; let timer = setInterval(step, TIME_STEP); }; gw.addEventListener("click", clickAction); } 

Ваша помощь очень ценится. Благодарность!

Проблема в опечатке:

 let step = funtion() 

Измените это на:

 let step = function() 

Подумайте об использовании некоторой IDE / Editor, которая уведомит вас о таких опечатках. Я использовал код Visual Studio, который сказал мне, что что-то не так:


Перед исправлением

После исправления