Vyalov — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
{{#widget:Iframe | url = http://tm.spbstu.ru/htmlets/js2020/Vyalov/1.html | width=600 | height=600 | border=0}}
 
  
Don't touch the spikes(java script)
+
==Описание==
Вялов Тимофей 3630103/90003
+
Don't touch the spikes - достаточно популярная игра c простым и понятным геймплеем
 +
 
 +
Автор: Вялов Тимофей 3630103/90003
 +
 
 +
==Игра==
 +
{{#widget:Iframe | url = http://tm.spbstu.ru/htmlets/js2020/Vyalov/1.html | width=800 | height=800 | border=0}}
 +
 
 +
==Код программы==
 +
<div class="mw-collapsible mw-collapsed">
 +
'''Код программы на языке JavaScript:''' <div class="mw-collapsible-content">
 +
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 +
 
 +
window.addEventListener('load',main,false);
 +
function main() {
 +
  var ctx = canvas_example.getContext('2d');
 +
  var w=canvas_example.width;
 +
  var h=canvas_example.height;
 +
 
 +
  var bird = new Image();
 +
  var bird1 = new Image();
 +
  var bg = new Image();
 +
  var spike = new Image();
 +
  var spike1 = new Image();
 +
  var hscore = new Image();
 +
 
 +
  bird.src = "img/bird.png";
 +
  bird1.src = "img/bird1.png";
 +
  bg.src = "img/bg.png";
 +
  spike.src = "img/spike.png";
 +
  spike1.src = "img/spike1.png";
 +
  hscore.src = "img/hs.png";
 +
 
 +
 
 +
  var x = 283; //координаты птицы
 +
  var y = 290; //
 +
  var vx = 0; //скорость по х
 +
  var vy = 0; // скорость по у
 +
  var g = 0; // ускорение у
 +
  var t = 2; // условное время
 +
  var a = 0 // ускорение х
 +
  var l = 26; // длина шипов
 +
  var q = 0;//для функции рандома
 +
  var s = 0;//счет
 +
  var hs = 0;//heigh score
 +
  var c = 0;//complexity
 +
 
 +
 
 +
  canvas_example.onmousedown = function() {
 +
      vy = -3;
 +
      t = 2.5 ;
 +
      if(vx >= 0){
 +
        vx = 3
 +
      }
 +
      else{
 +
        vx = -3
 +
      }
 +
      g = 0.04;
 +
 
 +
}
 +
 
 +
  function draw_bird() {
 +
  vy += g*t;
 +
  y = y + vy*t;
 +
 
 +
  if (y>574){
 +
  x =283;
 +
  y = 290;
 +
  vx = 0;
 +
  vy = 0;
 +
  g = 0;
 +
  if(s>1){r = []};
 +
  s = 0;
 +
  c = 0;
 +
 
 +
}
 +
  if (y<5){
 +
    x =283;
 +
    y = 290;
 +
    vx = 0;
 +
    vy = 0;
 +
    g = 0;
 +
    if(s>1){r = []};
 +
    s = 0;
 +
    c = 0;
 +
  };
 +
  if ((x>100)&&(x<500)&&(vx>0)){
 +
    x +=vx
 +
  }
 +
  if ((x>410)&&(vx>0)){
 +
    x = 412;
 +
    vx = -vx;
 +
    s++;
 +
    if(c<=0.7){
 +
      c+=0.02
 +
    }
 +
  }
 +
  if ((x>100)&&(x<500)&&(vx<0)){
 +
    x +=vx
 +
  }
 +
  if ((x<155)&&(vx<0)){
 +
    x = 156;
 +
      vx = -vx;
 +
      s++;
 +
      if(c<=0.7){
 +
        c+=0.02
 +
      }
 +
  }
 +
 
 +
  if (vy>3){
 +
    vy = 3
 +
  }
 +
  t=t+0.05
 +
  if (t>5){
 +
    t = 5
 +
  }
 +
  if (vx>=0){
 +
  ctx.drawImage(bird, x, y);
 +
    }
 +
  else{
 +
  ctx.drawImage(bird1, x, y);
 +
      }
 +
 
 +
}
 +
 
 +
  var r = []
 +
  function random_spike() {
 +
    r = []
 +
    for(var i = 0; i < 23; i++){
 +
      q = Math.round(Math.random()-0.4+c)
 +
      if (q ===1){
 +
        r[i]=i*l;
 +
      }
 +
      }
 +
    for(i = 1;i<23;i++){
 +
      if(r[i]==undefined && r[i-1]!=undefined && r[i+1]!=undefined){r[i+1]=undefined}
 +
    }
 +
 
 +
    }
 +
 
 +
  function draw_spike(){
 +
    for(var j = 0; j < 23; j++){
 +
      ctx.drawImage(spike, 150, r[j])
 +
    }
 +
  }
 +
  function draw_spike1(){
 +
    for(var j = 0; j < 23; j++){
 +
      ctx.drawImage(spike1, 412, r[j])
 +
    }
 +
  }
 +
 
 +
  function drawScore() {
 +
      ctx.font = "35px Arial";
 +
      ctx.fillStyle = "#0095DD";
 +
      if(s<10){ctx.fillText(s, 291, 316)}
 +
      else{ctx.fillText(s, 283, 316)}
 +
  }
 +
  function drawHeighScore() {
 +
      ctx.font = "40px Arial";
 +
      ctx.fillStyle = "#008080";
 +
      ctx.fillText(hs, 460, 90)
 +
  }
 +
 
 +
hscore.onload = draw_bird;
 +
//////////////////////////////////////////////////////////////////////////////
 +
setInterval(function() {
 +
  ctx.drawImage(bg, 150, 0);
 +
  ctx.drawImage(hscore, 450, 0);
 +
  drawScore();
 +
  if(s>hs){hs =s }
 +
  drawHeighScore();
 +
  draw_bird();
 +
  if((x === 409) || (x === 156)){
 +
    random_spike();
 +
  }
 +
  if (s>0 && vx<0){draw_spike();
 +
    for (i=0;i<23;i++){
 +
      if (y>r[i]-20 && y<r[i]+20 && x<160){
 +
      x =283;
 +
      y = 290;
 +
      vx = 0;
 +
      vy = 0;
 +
      g = 0;
 +
      if(s>1){r = []};
 +
      s = 0;
 +
      c = 0;
 +
    }
 +
    }}
 +
  if (s>0 && vx>0){
 +
    draw_spike1();
 +
    for (i=0;i<23;i++){
 +
      if (y>=r[i]-20 && y<=r[i]+20 && x>400){
 +
        x =283;
 +
        y = 290;
 +
        vx = 0;
 +
        vy = 0;
 +
        g = 0;
 +
        if(s>1){r = []};
 +
        s = 0;
 +
        c = 0;
 +
      }
 +
    }}
 +
}, 1000 / 60  );
 +
}
 +
 
 +
 
 +
</syntaxhighlight>
 +
</div>

Текущая версия на 17:53, 9 июня 2020

Описание[править]

Don't touch the spikes - достаточно популярная игра c простым и понятным геймплеем

Автор: Вялов Тимофей 3630103/90003

Игра[править]

Код программы[править]

Код программы на языке JavaScript:
  1 window.addEventListener('load',main,false);
  2 function main() {
  3   var ctx = canvas_example.getContext('2d');
  4   var w=canvas_example.width;
  5   var h=canvas_example.height;
  6 
  7   var bird = new Image();
  8   var bird1 = new Image();
  9   var bg = new Image();
 10   var spike = new Image();
 11   var spike1 = new Image();
 12   var hscore = new Image();
 13 
 14   bird.src = "img/bird.png";
 15   bird1.src = "img/bird1.png";
 16   bg.src = "img/bg.png";
 17   spike.src = "img/spike.png";
 18   spike1.src = "img/spike1.png";
 19   hscore.src = "img/hs.png";
 20 
 21 
 22   var x = 283; //координаты птицы
 23   var y = 290; //
 24   var vx = 0; //скорость по х
 25   var vy = 0; // скорость по у
 26   var g = 0; // ускорение у
 27   var t = 2; // условное время
 28   var a = 0 // ускорение х
 29   var l = 26; // длина шипов
 30   var q = 0;//для функции рандома
 31   var s = 0;//счет
 32   var hs = 0;//heigh score
 33   var c = 0;//complexity
 34 
 35 
 36   canvas_example.onmousedown = function() {
 37       vy = -3;
 38       t = 2.5 ;
 39       if(vx >= 0){
 40         vx = 3
 41       }
 42       else{
 43         vx = -3
 44       }
 45       g = 0.04;
 46 
 47 }
 48 
 49   function draw_bird() {
 50    vy += g*t;
 51    y = y + vy*t;
 52 
 53    if (y>574){
 54    x =283;
 55    y = 290;
 56    vx = 0;
 57    vy = 0;
 58    g = 0;
 59    if(s>1){r = []};
 60    s = 0;
 61    c = 0;
 62 
 63  }
 64    if (y<5){
 65      x =283;
 66      y = 290;
 67      vx = 0;
 68      vy = 0;
 69      g = 0;
 70      if(s>1){r = []};
 71      s = 0;
 72      c = 0;
 73    };
 74    if ((x>100)&&(x<500)&&(vx>0)){
 75      x +=vx
 76    }
 77    if ((x>410)&&(vx>0)){
 78      x = 412;
 79      vx = -vx;
 80      s++;
 81      if(c<=0.7){
 82        c+=0.02
 83      }
 84    }
 85    if ((x>100)&&(x<500)&&(vx<0)){
 86      x +=vx
 87    }
 88    if ((x<155)&&(vx<0)){
 89      x = 156;
 90       vx = -vx;
 91       s++;
 92       if(c<=0.7){
 93         c+=0.02
 94       }
 95    }
 96 
 97    if (vy>3){
 98      vy = 3
 99    }
100    t=t+0.05
101    if (t>5){
102      t = 5
103    }
104    if (vx>=0){
105    ctx.drawImage(bird, x, y);
106     }
107    else{
108   ctx.drawImage(bird1, x, y);
109       }
110 
111  }
112 
113   var r = []
114   function random_spike() {
115     r = []
116     for(var i = 0; i < 23; i++){
117       q = Math.round(Math.random()-0.4+c)
118       if (q ===1){
119         r[i]=i*l;
120       }
121       }
122     for(i = 1;i<23;i++){
123       if(r[i]==undefined && r[i-1]!=undefined && r[i+1]!=undefined){r[i+1]=undefined}
124     }
125 
126     }
127 
128   function draw_spike(){
129     for(var j = 0; j < 23; j++){
130       ctx.drawImage(spike, 150, r[j])
131     }
132   }
133   function draw_spike1(){
134     for(var j = 0; j < 23; j++){
135       ctx.drawImage(spike1, 412, r[j])
136     }
137   }
138 
139   function drawScore() {
140       ctx.font = "35px Arial";
141       ctx.fillStyle = "#0095DD";
142       if(s<10){ctx.fillText(s, 291, 316)}
143       else{ctx.fillText(s, 283, 316)}
144   }
145   function drawHeighScore() {
146       ctx.font = "40px Arial";
147       ctx.fillStyle = "#008080";
148       ctx.fillText(hs, 460, 90)
149   }
150 
151 hscore.onload = draw_bird;
152 //////////////////////////////////////////////////////////////////////////////
153 setInterval(function() {
154   ctx.drawImage(bg, 150, 0);
155   ctx.drawImage(hscore, 450, 0);
156   drawScore();
157   if(s>hs){hs =s }
158   drawHeighScore();
159   draw_bird();
160   if((x === 409) || (x === 156)){
161     random_spike();
162   }
163   if (s>0 && vx<0){draw_spike();
164     for (i=0;i<23;i++){
165       if (y>r[i]-20 && y<r[i]+20 && x<160){
166       x =283;
167       y = 290;
168       vx = 0;
169       vy = 0;
170       g = 0;
171       if(s>1){r = []};
172       s = 0;
173       c = 0;
174     }
175     }}
176   if (s>0 && vx>0){
177     draw_spike1();
178     for (i=0;i<23;i++){
179       if (y>=r[i]-20 && y<=r[i]+20 && x>400){
180         x =283;
181         y = 290;
182         vx = 0;
183         vy = 0;
184         g = 0;
185         if(s>1){r = []};
186         s = 0;
187         c = 0;
188       }
189     }}
190 }, 1000 / 60  );
191 }