Я недавно создал версию pong, используя canvas , просмотрите ее здесь , где вы можете просмотреть исходный код.
Чтобы сделать анимацию шара, я только что использовал переменную дляскорости x
и y
, некоторые для координат x
и y
шара и анимационная функция, которая проходит по циклу с использованием setInterval()
Вот небольшой пример (за вычетом всего рисункакод, конечно)
velX = 5;
velY = 2;
ballPosX = 100;
ballPosY = 50;
radius = 10;
// loop through 20fps
setInterval(animate,50);
function animate() {
// draw ball at ballPosX, ballPosY coordinates
ctx.arc(ballPosX,ballPosY, radius,0,Math.PI * 180, false)
// fill in colours etc
// move ball
ballPosX += velX;
ballPosY += velY;
// do boundary detection for bounce
if (ballPosX + radius > ctx.width || ballPosX - radius < 0) {
// change velX to negative to bounce the ball the oposite X direction
velX *= -1;
}
// do the same for velY
}
Это должно дать вам представление о том, как все это работает.Очевидно, я не могу напечатать весь код здесь.Но если вы перейдете по этой ссылке, вы можете увидеть источник.Это в основном прокомментировано:)
Стив