Я пытаюсь сделать больше ООП в Javascript.Одна вещь, которую я не могу понять, это как я могу изменить переменную внутри объекта из другой функции?
Вот как я пытался это сделать:
function Ball(){
radius = 5;
Y = 20;
X = 25; // The value i would like to change.
ctx.arc(this.X, this.Y, this.radius, 0, Math.PI*2, true);
ctx.fillStyle = '#00ff00';
ctx.fill();
}
function draw(){
Player();
Ball();
}
function update(){
ctx.clearRect(0, 0, 800, 400);
draw();
Ball.X++; // This is where i want to modify the value.
}
Пока ятолько смог сделать это, если я определю X как глобальную переменную, но я не хочу делать это, так как есть другие значения X и Y.
Так как бы я мог получить доступ к переменной извне функции?
РЕДАКТИРОВАТЬ: Решение, предоставленное "nnnnnn", работало до некоторой степени, оно меняет значение X, но я столкнулся с другой проблемой.Мой clearRect не очищает анимацию, поэтому вместо шара он рисует линию, которая только растет.
Вот как выглядит код прямо сейчас:
function Ball(){
this.radius = 5;
this.Y = 20;
this.X = 25;
this.draw = function() {
ctx.arc(this.X, this.Y, this.radius, 0, Math.PI*2, true);
ctx.fillStyle = '#00ff00';
ctx.fill();
};
}
var ball = new Ball();
function draw(){
Player();
ball.draw();
}
function update(){
ctx.clearRect(0, 0, 800, 400);
draw();
ball.X++;
}
Я пытался переместить еговокруг, поместив его в функции draw () и ball.draw (), но все же получая тот же результат, я также попытался сделать fillRect вместо clear, но это не помогло.Кто-нибудь может понять, что не так?