Flappy Cow
Материал из Department of Theoretical and Applied Mechanics
Версия от 17:30, 26 мая 2019; 188.243.152.155 (обсуждение)
Описание
Реализация и визуализация аналога игры “Flappy Bird” - “Flappy Cow”
Исполнители: Мальцева О.Н., Клочко Д.А..
Группа 13632/1 Кафедра Теоретической механики
Основные правила
1.Управление производится клавишами вверх и вниз
2.“Коровка” не должна касаться травинок
3.Счёт ведётся с начала игры, вне зависимости от того, пройдет ли "корова" "травинку".
Визуализация
Код программы
window.addEventListener("load", main, false); function main() { var ctx = canvas.getContext('2d'); var bird = new Image(); var bg = new Image(); var fg = new Image(); var pipeUp = new Image(); var pipeBottom = new Image(); var score = 0; bird.src = 'img/korova.png'; bg.src = 'img/nebo.jpg' fg.src = 'img/flappy_bird_fg.png'; pipeUp.src = 'img/flappy_bird_pipeUp.png'; pipeBottom.src = 'img/flappy_bird_pipeBottom.png'; var gap = 70; var gravitation = 1; var Posx = 10; var Posy = 150; //нажатие document.addEventListener("keydown", moveUp); function moveUp(){ gravitation = -7; } var pipe = []; pipe[0] = { x : canvas.width, y : 0 } function draw(){ ctx.clearRect(0,0, 288,512); ctx.drawImage(bg, -bg.width/2-90, 0); for (var i = 0; i < pipe.length; i++){ ctx.drawImage(pipeUp, pipe[i].x, pipe[i].y); ctx.drawImage(pipeBottom, pipe[i].x, pipe[i].y + pipeUp.height + gap); pipe[i].x--; if (pipe[i].x == 125){ pipe.push({ x: canvas.width, y: Math.floor(Math.random() * pipeUp.height) - pipeUp.height }); } if (Posx + bird.width >= pipe[i].x && Posx <= pipe[i].x + pipeUp.width && (Posy <= pipe[i].y + pipeUp.height || Posy + bird.height >= pipe[i].y + pipeUp.height + gap) || Posy + bird.height >= canvas.height - fg.height){ location.reload(); } } ctx.drawImage(fg, 0, canvas.height - fg.height); ctx.drawImage(bird, Posx, Posy); Posy += gravitation; if (gravitation != 1){ gravitation += 1; } score++; some_name.innerHTML = score; console.log(pipe); requestAnimationFrame(draw); } pipeBottom.onload = draw;}