рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреИрдирд╡рд╕ - рд╕реНрдЯреЗрдк рдмрд╛рдп рд╕реНрдЯреЗрдк рдПрдХ рдЖрд░реНрдХреЗрдб рд╕реНрдХреЙрд▓рд░ рдмрдирд╛рдПрдВ

рдЫрд╡рд┐

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛

рдпрд╣ рдПрдХ рдЦреЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд╢рд╛рдо рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд▓рдХреНрд╖реНрдп рд╢реИрд▓реА рдХреЗ рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдирд╣реАрдВ рдерд╛ рдЬрд┐рддрдирд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреИрдирд╡рд╕ рдФрд░ рдУрдУрдкреА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢рд░реНрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА - рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдмрд╛рд╣рд░реА рдлрд╛рдЗрд▓ рдирд╣реАрдВ, рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЦреЗрд▓ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ IMHOред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреИрдирд╡рд╛рд╕ рдПрдХ рдпреБрд╡рд╛ рдордВрдЪ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдЧреЗрдорд┐рдВрдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдХреЗ рд░реБрдЪрд┐ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рд░реНрдп

рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЖрд░реНрдХреЗрдб рд╕реНрдХреЙрд▓рд░ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рджреБрд╢реНрдордиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд▓рд╣рд░реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рд╢реЙрдЯ рдбрд╛рдЙрди рдХреЗ рд▓рд┐рдП рджреБрд╢реНрдорди рдЕрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди

рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдЦ рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЦреЗрд▓ рдХреЗ рд╣рд░ рдкрд╣рд▓реВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЕрдВрдд рдореЗрдВ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдбрд╝реАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:

var c = document.getElementById('canv'); var ctx = c.getContext('2d'); var width = c.width; var height = c.height; var shipx = 100; var shipy = 100; var ship_w = 70;//  var ship_h = 15;// var r_border = width - ship_w;//  ,    var l_border = 0; var t_border = ship_h; var b_border = height; var bgr = new Array;//    var bullets = new Array; var enemies = new Array; var k_down = 0; var k_up = 0; var k_left = 0; var k_right = 0; var fires = 0;//   //   var vx = 0; var vy = 0; var cyclestep = 0; var game_over = 0; var score = 0; var cset = 0;//   


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдХреЛрдб рд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ред рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдБ:

 function enemy(hp,dx,dy,type,x,y,width){ //  this.hp = hp; this.type = type; this.x = x; this.y = y; this.width = width; this.hwidth = width/2; this.dx = dx; this.dy = dy; } function bgObj(x,y,speed){ //   this.x = x; this.y = y; this.speed = speed; } function bullet(x,y){ //  this.x = x; this.y = y; this.dx = 12; this.dy = 0; } 


рд╣реЙрдХрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рд╡рд╕реНрддреБ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧреЛрд▓рд┐рдпрд╛рдВ рдХрд┐рд╕реА рджреБрд╢реНрдорди рдХреА рд╡рд╕реНрддреБ рд╕реЗ рдЯрдХрд░рд╛рдИрдВред рдареАрдХ рд╣реИ, dx рдФрд░ рдбрд╛рдИ рдЗрд╕реА рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБ рдХреА рдЧрддрд┐ рд╣реИред

рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЕрдВрдХреЛрдВ рдкрд░ рдбреЗрдЯрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ:

 function setCookie(name,value){ var d = new Date(); d.setDate(d.getDate()+1); document.cookie = name + "="+ escape(value)+";expires="+d.toGMTString(); } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдПрдХ рджрд┐рди рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред рдареАрдХ рдПрдХ рджрд┐рди рдХреНрдпреЛрдВ ... рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рддрдм рддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдЖрдкрдХрд╛ рдкреЗрдЬ рдЪрд╛рд▓реВ рд╣реИ) рдЙрдирдХреА рддреБрд▓рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдХрд░рддрд╛ рд╣реИред
рддреЛ, рдЦреЗрд▓ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдбреНрд░рд╛ рд╣реИ ():

 function draw(){ //   if (k_left) vx -= 2; else if (k_right) vx +=2; if (k_up) vy -=4; else if (k_down) vy +=4; //  if(vx > 7) vx = 7; if(vy > 5) vy = 5; if (vy < -5) vy = -5; if (vx < -5) vx = -5; // if (fires == 1 && cyclestep % 8 == 0 && game_over != 1){ var b = new bullet(shipx+74,shipy-14); bullets.push(b); } draw_bg(); shoot(); if (game_over != 1) draw_ship(); move_ship(); draw_enemies(); enemy_ai(); if(game_over == 1){ ctx.fillStyle = "rgb(72,118,255)"; ctx.font = "bold 30px Arial"; ctx.textBaseline = "top"; ctx.fillText("GAME OVER",130,150); if(cset != 1){ var uname = prompt('Enter your name:','player'); if (uname == null || uname == "") uname = 'player'; setCookie('username',uname); setCookie('score',score); cset = 1; } } cyclestep++; if (cyclestep == 128) make_wave(1,4,30); if (cyclestep == 256){ cyclestep = 0; make_wave(2,4,20); } } 


рд╕рд╛рдЗрдХреНрд▓реЗрд╕реНрдЯреЗрдк рд╡реЗрд░рд┐рдПрдмрд▓ рдЗрдореЗрдЬ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдХреА рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЛ рдзрд╛рд░рдг рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрдмрд╛рдП рдЧрдП рдлрд╛рдпрд░ рдХреБрдВрдЬреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЬрдм рдмреБрд▓реЗрдЯ рдХреЗрд╡рд▓ рддрднреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬрдм рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╢реЗрд╖ рдХреЗ рдмрд┐рдирд╛ 8 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЧреЛрд▓рд┐рдпрд╛рдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд▓рд╛рдЗрди рд╕реЗ рдмрд╛рд╣рд░ рди рдирд┐рдХрд▓реЗрдВред рдмреЗрд╢рдХ, рдпрд╣ рдмрдлрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЧреЛрд▓рд┐рдпрд╛рдВ рдЧрд╛рдпрдм рди рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпреБрдХреНрдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдореИрдВ рд▓рдЧрднрдЧ рдХрднреА рднреА рдлрд╛рдпрд░ рдХреБрдВрдЬреА рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ред

рдЕрдм рдкреГрд╖реНрдарднреВрдорд┐ рдбреНрд░рд╛ рд╕рдорд╛рд░реЛрд╣:

 function draw_bg(){ var distance; //""    ctx.fillStyle = "rgb(0,0,0)"; ctx.fillRect(0,0,width,height); for (var i = 0; i < bgr.length; i++){ distance = bgr[i].speed*40; if (distance < 100) distance = 100; //   ctx.fillStyle = "rgb("+distance+","+distance+","+distance+")"; //,    -   ctx.fillRect(bgr[i].x, bgr[i].y,1,1); bgr[i].x -=bgr[i].speed; if (bgr[i].x < 0){ //     ,   (  ) bgr[i].x += width; bgr[i].y = Math.floor(Math.random() * height); bgr[i].speed = Math.floor (Math.random() * 4) + 1; } } } 


рд╕рд░рдгреА рдореЗрдВ рддрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╣рд░ 40 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкрд░ рдореБрдЦреНрдп рдбреНрд░реЙ рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ:

 for (var i = 1; i < 50; i++){ var b = new bgObj(Math.floor(Math.random()*height),Math.floor(Math.random()*width),Math.floor(Math.random()*4)+1); bgr.push(b); } setInterval("draw();", 40); 


рдЕрдм рдЖрдк рдЙрди рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрднреА рднреА рдбреНрд░реЙ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ () рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдВред рдЪрд▓рддреЗ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдм рдЬрд╣рд╛рдЬ рдЦреАрдВрдЪрдирд╛ рдФрд░ рдЕрд░реНрдЬрд┐рдд рдЕрдВрдХ:

 function draw_ship(){ // var sbpaint = ctx.createLinearGradient(shipx,shipy,shipx,shipy-15);// sbpaint.addColorStop(0,'rgb(220,220,230)'); sbpaint.addColorStop(1,'rgb(170,170,180)'); ctx.fillStyle = sbpaint; ctx.beginPath(); ctx.moveTo(shipx,shipy); ctx.lineTo(shipx+60,shipy); ctx.lineTo(shipx+50,shipy-15); ctx.lineTo(shipx+10,shipy-15); ctx.lineTo(shipx,shipy); ctx.fill(); // var gpaint = ctx.createLinearGradient(shipx+50,shipy-12,shipx+70,shipy-12); gpaint.addColorStop(0,'rgb(190,190,200)'); gpaint.addColorStop(1,'rgb(120,120,130)'); ctx.fillStyle = gpaint; ctx.beginPath(); ctx.moveTo(shipx+50,shipy-13); ctx.lineTo(shipx+70,shipy-13); ctx.lineTo(shipx+70,shipy-8); ctx.lineTo(shipx+50,shipy-8); ctx.lineTo(shipx+50,shipy-13); ctx.fill(); //  ctx.fillStyle = "rgb(58,95,205)"; ctx.font = "14px Arial"; ctx.textBaseline = "top"; ctx.fillText("Score:"+score,3,3); } 


рдмреЗрд╢рдХ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХрд╛рдЧрдЬ рдкрд░ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЬрд╣рд╛рдЬ рдХрд╛ рдПрдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ (рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЖрдпрд╛рдо):

рдЫрд╡рд┐

рдЪреВрдБрдХрд┐ рдореИрдВрдиреЗ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рд╣реА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди, рддрд╛рдХрд┐ рдЦреЗрд▓ 80 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдореЗрд╣рдорд╛рди рдХреА рддрд░рд╣ рди рджрд┐рдЦреЗ, рдореИрдВ рдЙрди рдкрд░ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдереЛрдкрддрд╛ рд╣реВрдВред

рд╕реНрдерд╛рди рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдИ рдХрд╛рд░реНрдп рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреВрдВрдЧрд╛:

 function move_ship(){//  -   shipx += vx; shipy +=vy; if (shipx>r_border){ shipx = r_border; vx = 0; } if (shipx<l_border){ shipx = l_border; vx = 0; } if (shipy>b_border){ shipy = b_border; vy = 0; } if (shipy<t_border){ shipy = t_border; vy = 0; } } function shoot(){ var dead_bullets = new Array; for (var i = 0; i < bullets.length; i++) { ctx.fillStyle = "rgb(173,216,230)"; ctx.fillRect(bullets[i].x,bullets[i].y,12,2);// , 122 //     if (bullets[i].x > width) dead_bullets.push(i); //    for (var j = 0;j < enemies.length;j++){ if (enemies[j].type > 0){ if (bullets[i].x >= enemies[j].x-enemies[j].hwidth && bullets[i].x < enemies[j].x+enemies[j].hwidth && bullets[i].y >= enemies[j].y-enemies[j].hwidth && bullets[i].y < enemies[j].y+enemies[j].hwidth){ enemies[j].hp--; } if(enemies[j].hp < 0){ enemies[j].type = -1; } } } bullets[i].x += bullets[i].dx; bullets[i].y += bullets[i].dy; } // ""  for (var i = dead_bullets.length-1; i >= 0; i--){ bullets.splice(dead_bullets[i],1); } } function make_wave(type,count,ewidth){ var h = Math.floor(Math.random()*(height-40))+40; for (var i = 0;i < count;i++){ var n = new enemy(2,Math.floor(Math.random()* -4)-1,0,type,width+i*20,h+i*21,ewidth); enemies.push(n); } } 


рджреБрд╢реНрдорди рдФрд░ рдЧреЛрд▓реА рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ - рдпрд╣ рджреБрд╢реНрдорди рдХреА рдЖрдзреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ x рдХреЗ рд╕рд╛рде рдкрд░рд┐рдкрддреНрд░ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рддрд╣рдд рдлрд╝рдВрдХреНрд╢рди рддреЗрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдХреБрдЦреНрдпрд╛рдд рдЖрдзрд╛ рддреНрд░рд┐рдЬреНрдпрд╛ рд╣реИред рджреБрд╢реНрдорди рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реИред рдпрд╣ рд╡реНрд░рдЬрд╝рд┐рди рдХреЗ рдмрд╛рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрд┐рдд рд╣реИ:

 function draw_enemies(){ var dead_bad = new Array; for (var i = 1;i < enemies.length; i++){ // 1 -    if(enemies[i].type == 1){ var rg = ctx.createRadialGradient(enemies[i].x,enemies[i].y,0,enemies[i].x,enemies[i].y,enemies[i].hwidth); rg.addColorStop(0,"rgba(130,130,130,0.4)"); rg.addColorStop(0.5,"rgba(125,125,125,0.5)"); rg.addColorStop(1,"rgba(120,120,120,"+enemies[i].hp*0.4+")"); ctx.fillStyle = rg; ctx.beginPath(); ctx.arc(enemies[i].x,enemies[i].y,15,0,Math.PI*2,true); ctx.fill(); } // 2 -  if(enemies[i].type == 2){ var rg = ctx.createRadialGradient(enemies[i].x+10,enemies[i].y-10,0,enemies[i].x+10,enemies[i].y-10,enemies[i].width); rg.addColorStop(0,"rgba(240,240,0,"+enemies[i].hp*0.4+")"); rg.addColorStop(1,"rgba(240,240,0,0.6"); ctx.fillStyle = rg; ctx.beginPath(); ctx.moveTo(enemies[i].x,enemies[i].y); ctx.lineTo(enemies[i].x+10,enemies[i].y-20); ctx.lineTo(enemies[i].x+20,enemies[i].y); ctx.lineTo(enemies[i].x,enemies[i].y); ctx.fill(); } //!  if(enemies[i].type < 0){ ctx.fillStyle="rgb(250,250,250)"; ctx.beginPath(); ctx.arc(enemies[i].x,enemies[i].y,enemies[i].type * -4,0,Math.PI*2,true); ctx.fill(); } if(enemies[i].type < 0) enemies[i].type--; if(enemies[i].type < -4){ dead_bad.push(i); score+=2; } if(enemies[i].x + enemies[i].width < 0) dead_bad.push(i); if(enemies[i].y + 5 < 0) dead_bad.push(i); if(enemies[i].y > height+enemies[i].width) dead_bad.push(i); if(enemies[i].x < shipx+60 && enemies[i].x > shipx && enemies[i].y < shipy+15 && enemies[i].y > shipy) game_over = 1; enemies[i].x += enemies[i].dx; enemies[i].y += enemies[i].dy; } for (var i = 0;i < dead_bad.length;i++){ enemies.splice(dead_bad[i],1); } } function enemy_ai(){ for (var i = 0;i < enemies.length;i++){ if(enemies[i].type == 2){ if(cyclestep % 4 == 0){ if(shipy > enemies[i].y && enemies[i].y+20 < height && enemies[i].dy < 4 && enemies[i].x < width-100) enemies[i].dy++; if(shipy < enemies[i].y && enemies[i].y-20 > 0 && enemies[i].dy > -4 && enemies[i].x < width-100) enemies[i].dy--; } } } } 


рд╡рд┐рд╕реНрдлреЛрдЯ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, 4 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдЬрд╛рд░реА рд╣реИ, рд╡реНрдпрд╛рд╕ рдореЗрдВ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдФрд░ рддреНрд░рд┐рдХреЛрдг рдХреЗ AI рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ (рддреНрд░рд┐рдХреЛрдг y рд╕рдордиреНрд╡рдп рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдкреАрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ)ред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг:
 function get_key_down(e){ if (e.keyCode == 37) k_left = 1; if (e.keyCode == 38) k_up = 1; if (e.keyCode == 39) k_right = 1; if (e.keyCode == 40) k_down = 1; if(e.keyCode == 32) fires = 1; } function get_key_up(e){ if (e.keyCode == 37) k_left = 0; if (e.keyCode == 38) k_up = 0; if (e.keyCode == 39) k_right = 0; if (e.keyCode == 40) k_down = 0; if(e.keyCode == 32) fires = 0; } 


рд╡рд╣ рд╕рдм рд╣реИ! рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд╣реИ ред рдореИрдВ рдХреБрдХреАрдЬрд╝ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрдиреЗ / рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд▓реЗрдЦ рдмрд┐рд▓реНрдХреБрд▓ рднреА рди рдЦрд┐рд▓реЗред

рдЕрдВрддрднрд╛рд╖рдг


рдмреЗрд╢рдХ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдХрдард┐рдирд╛рдИ рд╕реНрддрд░, рджреБрд╢реНрдорди, рдмреЙрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ (рдКрдкрд░ рд╕реЗ рдПрдХ рдЕрд░реНрдзрд╡реГрддреНрдд рдЦреАрдВрдЪрдирд╛ - рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг рдЙрдбрд╝рд╛рди рддрд╢реНрддрд░реА рдорд┐рд▓рддреА рд╣реИ)ред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рд╛рд░рд╛рдВрд╢ - рдирд┐рд╖реНрдХрд░реНрд╖
рдХреНрд░реЛрдо рдореЗрдВ рдкреБрд░рд╛рдиреА рдХреНрд░рдорд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рддреНрд░реБрдЯрд┐ рдЕрдм рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рднрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдПрдХ рдврд╛рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рдеред рдпрд╣ рдПрдХ рдЫреЛрдЯреА рдХреБрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд - рдХреИрдирд╡рд╕ рдЕрднреА рднреА рдмрд╣реБрдд рдХрдЪреНрдЪрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИред рдкреНрд░рдпреЛрдЧ рд╕рдорд╛рдкреНрдд рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рднреА рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In112274/


All Articles