PONG GAME!
by jmancodes521
HTML
<canvas id="canvas"></canvas>
JavaScript
// класс определяющий параметры игрового прямоугольника и метод для его отрисовки
function rect(color, x, y, width, height) {
this.color = color; // цвет прямоугольника
this.x = x; // координата х
this.y = y; // координата у
this.width = width; // ширина
this.height = height; // высота
// функция рисует прямоугольник согласно заданным параметрам
this.draw = function() {
context.fillStyle = this.color;
context.fillRect(this.x, this.y, this.width, this.height);
};
}
// функция проверяет пересекаются ли переданные ей прямоугольные объекты
function collision(objA, objB) {
if (objA.x + objA.width > objB.x && objA.x < objB.x + objB.width && objA.y + objA.height > objB.y && objA.y < objB.y + objB.height) {
return true;
}
else {
return false;
}
}
// движение оппонента
function aiMove() {
var y;
// делаем скорость оппонента зависимой от скорости шарика
switch (ball.vY) {
case 2:
vY = 2;
break;
case 3:
vY = 3;
break;
case 4:
vY = 4;
break;
case 5:
vY = 5;
break;
case 6:
vY = 5;
break;
case 7:
vY = 6;
break;
case 8:
vY = 6;
break;
case 9:
vY = 6;
break;
case 0:
vY = 0;
break;
}
if (ball.y < ai.y + ai.height / 2) {
y = ai.y - vY;
}
if (ball.y > ai.y + ai.height / 2) {
y = ai.y + vY;
}
if (10 < y && y < game.height - ai.height - 10) {
ai.y = y;
}
}
// движение игрока
function playerMove(e) {
if (start) {
var y = e.pageY;
// условие проверяет не выходит ли ракетка за пределы поля
if (player.height / 2 + 10 < y && y < game.height - player.height / 2 - 10) {
// привязываем положение мыши к середине ракетки
player.y = y - player.height / 2;
}
}
}
function startGame() {
if (!start) {
...