所以,我剛開始使用JavaScript,並且一切都很好,直到我來到對象。 代碼的這種安寧應該創造一個JavaScript的HTML畫布中的彈跳球,但它不起作用。訪問javascript中的對象變量
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
//clear
function clear() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
這裏是我的球對象
//ball
var ball = {
x: canvas.width/2,
getX: function() {
return this.x;
},
setX: function(a) {
this.x = a;
},
y: canvas.height/2,
getY: function() {
return this.y;
},
setY: function(a) {
this.y = a;
},
mx: 2,
getMx: function() {
return this.mx;
},
setMx: function(a) {
this.my = a;
},
my: 4,
getMy: function() {
return this.my;
},
setMy: function(a) {
this.my = a;
},
r: 10,
getR: function() {
return this.r;
}
};
代碼繪製我的球
function drawBall()
{
ctx.beginPath();
ctx.arc(ball.getX, ball.getY, ball.getR, 0, Math.PI * 2, true);
ctx.fillStyle = "#83F52C";
ctx.fill();
}
function circle(x, y, r) {
ctx.beginPath();
ctx.arc(x, y, r, 0, Math.PI * 2, true);
ctx.fillStyle = "#83F52C";
ctx.fill();
}
//draws ball and updates x,y cords
function draw() {
clear();
drawBall();
if (ball.getX() + ball.getMx() >= canvas.width || ball.getX()+ ball.getMx() <= 0) {
ball.setMx(-ball.getMx());
}
if (ball.getY() + ball.getMy() >= canvas.height|| ball.getY()+ ball.getMy() <= 0) {
ball.setMy(-ball.getMy());
}
ball.setX(ball.getX() + ball.getMx());
ball.setY(ball.getY() + ball.getMy());
}
設定間隔
function init() {
return setInterval(draw, 10);
}
init();
我認爲你確定你有在HTML中的畫布? – Alex