Я использую JavaScript-классы, и у меня есть весло, которое имеет правильный метод рисования, но по какой-то причине моя функция moveBall испорчена. Может ли кто-нибудь указать, почему? Я получаю сообщение об ошибке, что moveBall() не является функцией.Методы класса ES6 не являются функцией
Редактировать: я включил еще один код, я вызываю init(), чтобы начать все.
class Ball {
constructor(x, y, r, sAngle, rAngle) {
this.x = x;
this.y = y;
this.r = r;
this.sAngle = sAngle;
this.rAngle = rAngle;
this.speed = null;
}
drawBall() {
ctx.beginPath();
ctx.arc(this.x, this.y, this.r, this.sAngle, this.rAngle);
ctx.fillStyle = "#FF0000";
ctx.fill();
}
moveBall() {
this.x += this.speed;
}
}
function init() {
var ball = new Ball(c.height/2, c.width/2, 10, 0, 2 * Math.PI);
var paddleLeft = new Paddle(0, 0, 20, 100);
ball.ballPhysics = 1.0;
draw(ball, paddleLeft);
main(ball);
}
window.main = function (ball) {
window.requestAnimationFrame(main);
ball.moveBall();
window.onload = function() {
document.addEventListener('keydown', function (event) {
if (event.keyCode === 65) {
}
}, false);
}
};
это прекрасно работает, как вы называете moveBall? –
what'.moveBall'? показать еще код – dandavis
Пожалуйста, прочитайте [mcve]. Это, безусловно, полезно, по крайней мере, включить строку, которая выдает ошибку. Я предполагаю, что вы делаете 'Ball.moveBall()'. Это просто неправильно, вам нужно сначала создать экземпляр «Ball». –