Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не обращайте внимание

Владимир Солдатов Ученик (155), на голосовании 1 год назад
HTML:

ctx.beginPath();
ctx.rect(20, 20, 150, 100);
ctx.fillStyle = "red";
ctx.fill();
ctx.closePath();
`

JavaScript:
// Инициализация игры
var canvas = document.getElementById("gameCanvas");
var ctx = canvas.getContext("2d");

// Пингвин
var penguin = {
x: 50,
y: 170,
speed: 5,
jumping: false,
jumpHeight: 100,
height: 50,
width: 50,
draw: function() {
ctx.fillStyle = "black";
ctx.fillRect(this.x, this.y, this.width, this.height);
}
};

// Льдинки
var icebergs = [];
var icebergDistance = 150;
var icebergSpeed = 7;
var icebergWidth = 40;
var icebergHeight = 200;
var icebergGap = 150;

for (var i = 0; i < 3; i++) {
icebergs.push({
x: canvas.width + i * icebergDistance,
y: canvas.height - icebergHeight,
draw: function() {
ctx.fillStyle = "white";
ctx.fillRect(this.x, this.y, icebergWidth, icebergHeight);
}
});
}

// Управление пингвином
document.addEventListener("keydown", movePenguin);
function movePenguin(event) {
if (event.keyCode == 32 && !penguin.jumping) {
penguin.jumping = true;
jump();
}
}

function jump() {
var jumpInterval = setInterval(function() {
if (penguin.y <= canvas.height - penguin.jumpHeight) {
clearInterval(jumpInterval);
var fallInterval = setInterval(function() {
if (penguin.y >= canvas.height - penguin.height) {
clearInterval(fallInterval);
penguin.jumping = false;
} else {
penguin.y += penguin.speed;
}
}, 10);
} else {
penguin.y -= penguin.speed;
}
}, 10);
}

// Обновление экрана
function update() {
// Очистка экрана
ctx.clearRect(0, 0, canvas.width, canvas.height);

// Отображение пингвина
penguin.draw();

// Движение льдинок
for (var i = 0; i < icebergs.length; i++) {
icebergs[i].x -= icebergSpeed;
icebergs[i].draw();
}

// Генерация новой льдинки
if (icebergs[0].x <= icebergGap) {
icebergs.shift();
icebergs.push({
x: icebergs[1].x + icebergDistance,
y: canvas.height - icebergHeight,
draw: function() {
ctx.fillStyle = "white";
ctx.fillRect(this.x, this.y, icebergWidth, icebergHeight);
}
});
}
}

setInterval(update, 30);
Голосование за лучший ответ
Яков Гото Искусственный Интеллект (320876) 1 год назад
Научись понимать код, прежде чем его писать.
Похожие вопросы