Flappy Cow — различия между версиями
Материал из Department of Theoretical and Applied Mechanics
(→top) |
|||
Строка 1: | Строка 1: | ||
Реализация и визуализация аналога игры “Flappy Bird” - “Flappy Cow” | Реализация и визуализация аналога игры “Flappy Bird” - “Flappy Cow” | ||
− | Исполнители: Мальцева О.Н., Клочко Д.А. | + | Исполнители: [[Мальцева_Олеся|Мальцева О.Н.]], [[Клочко_Дарья|Клочко Д.А.]]. |
Группа 13632/2 Кафедра Теоретической механики | Группа 13632/2 Кафедра Теоретической механики | ||
Строка 8: | Строка 8: | ||
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/MalcevaON/title.html |width=600|height=700 |border=0 }} | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/MalcevaON/title.html |width=600|height=700 |border=0 }} | ||
+ | |||
+ | ==Код программы== | ||
+ | |||
+ | 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; | ||
+ | } |
Версия 08:29, 16 мая 2019
Реализация и визуализация аналога игры “Flappy Bird” - “Flappy Cow”
Исполнители: Мальцева О.Н., Клочко Д.А..
Группа 13632/2 Кафедра Теоретической механики
Визуализация
Код программы
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; }