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;
}