рдЯрд┐рдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд░реНрдХрд╛рдиреЙрдпрдб (рдХреЛрдб рдХреА 30 рд▓рд╛рдЗрдиреЗрдВ)

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА 30 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдлрд┐рдЯ рдХрд░рддреЗ рд╣реБрдП рдПрдХреНрд╕реЗрд▓ рдФрд░ рдПрдХ рд╕рд╛рдБрдк рдХреЛ рдлрд┐рдЯ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкреНрд░рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд░рд╣рдиреЗ рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рддреЛ, рджреЗрд╡рд┐рдпреЛрдВ рдФрд░ рд╕рдЬреНрдЬрдиреЛрдВ - рд╢реБрджреНрдз рдЬреЗрдПрд╕ рдкрд░ 30-рд▓рд╛рдЗрди рд╡рд╛рд▓реЗ рдЕрд░реНрдХрд╛рдиреЙрдЗрдбред



рдмреЗрд▓рд╛ рд╕реЗ рд▓рд┐рдВрдХред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕реЗ рдХреЛрдбрдкреЗрди рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реВрдВрдЧрд╛ , рдЕрдиреНрдпрдерд╛ рдлрд┐рдбреЗрд▓ рдиреЗ рдкреВрд░реА рд░рд╛рдд 500koy рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рджрд┐рдпрд╛ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
(function (fld, pF, px, py, dx, dy, lifes, score) { var cycle = setInterval(function () { var bx = pF(ball.style.left = pF(ball.style.left) + dx + 'px'), by = pF(ball.style.top = pF(ball.style.top) + dy + 'px'), row = ((by - 30) / 14) | 0, col = (bx / 32) | 0; if (bx < 0 && dx < 0 || bx >= 314 && dx > 0) dx *= -1; if (bx + 6 >= px && bx + 6 <= px + 64 && by >= 259 && by <= 264) { dy *= -1; if (bx + 6 <= px + 21) dx = -6; else if (bx + 6 >= px + 43) dx = 6; else if (Math.abs(dx) == 6) dx = (dx * 2 / 3) | 0; } if (by < 0) dy *= -1; if (by >= 288 && !--lifes) clearInterval(cycle), alert('Game over!'); if (by >= 288 && lifes) dy *= -1, lifesNode.innerHTML = lifes; if (by >= 18 && by <= 100 && fld[row * 10 + col].className != 'removed') { dy *= -1, fld[row * 10 + col].className = 'removed'; if (dx < 0 && ((bx | 0) % 32 < 10 || (bx | 0) % 32 > 22)) dx *= -1; if (dx > 0 && (((bx + 12) | 0) % 32 < 10 || ((bx + 12) | 0) % 32 > 22)) dx *= -1; scoreNode.innerHTML = ++score; if (score == 50) clearInterval(cycle), alert('Victory!'); } }, 1000 / 60); document.addEventListener('mousemove', function (e) { px = (e.pageX > 40) ? ((e.pageX < 290) ? e.pageX - 40 : 256) : 0; paddle.style.left = px + 'px'; }, false); }(field.children, parseFloat, 129, 270, -4, -4, 3, 0)); 


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:


рдХрдорд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ: рдЧреЗрдВрдж рдХрднреА-рдХрднреА рдЕрдиреБрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдИ рдИрдВрдЯреЛрдВ рдХреЛ рддреЛрдбрд╝ рджреЗрддреА рд╣реИред

рд╣реБрдб рдХреЗ рдиреАрдЪреЗ


рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдИрдВрдЯреЗрдВ - рдЗрдирд▓рд╛рдЗрди рдмреНрд▓реЙрдХ, рд░реИрдХреЗрдЯ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ - рд╕реНрдерд┐рддрд┐: рдирд┐рд░рдкреЗрдХреНрд╖ред

рд▓реЗрдХрд┐рди рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЬрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдИрдВрдЯреЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рд╡рд╣ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдХреНрд╖реЗрдкреНрдп рд╣реЛрддрд╛ рд╣реИред рдИрдВрдЯреЛрдВ рдХреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреЗрдВрдж рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд▓реЗрддреЗ рд╣реБрдП, рд╣рдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдИрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЧрд┐рд░ рдЧрдпрд╛ред рдпрджрд┐ рдЗрд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ X рдФрд░ Y , рдФрд░ рдИрдВрдЯреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ рд╣реИ, рддреЛ рдирд┐рдЬреА X / width рдФрд░ Y / height рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реБрдП Y / height рд╣рдо рд╡рд░реНрддрдорд╛рди рд▓рдХреНрд╖реНрдп рдХреЗ рд╕реНрддрдВрдн рдФрд░ рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдХреЙрд▓реЛрдиреА рдФрд░ рдкрдВрдХреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдХрд░, рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
number = row * rowLength + col ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, querySelectorAll рддрддреНрд╡реЛрдВ рдХреЛ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ html рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрддрдорд╛рди рдИрдВрдЯ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
elements[number].className = 'removed' ред

setInterval


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рднреА рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рджреЗрд╢реА requestAnimationFrame рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕реЗ requestAnimationFrame рдкрдХреНрд╖ рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЖрдкрдХреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рдХреЛрдб рдХреА рдПрдХ (рдХреАрдорддреА!) рдмрдЪрд╛рддрд╛ рд╣реИ:
 requestAnimationFrame(function () frame { requestAnimationFrame(frame); }); //  var cycle = setInterval(function () { }, delay); 


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░


рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреЛрдб рдХрд╛рдлреА рдХреЙрдореНрдкреИрдХреНрдЯ рдирд┐рдХрд▓рд╛ред рд╕рдмрд╕реЗ рд▓рдВрдмреА рд░реЗрдЦрд╛ 88 рд╡рд░реНрдг (рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕рд╣рд┐рдд) рд╣реИред рдЦреЗрд▓ рд╣реА рдереЛрдбрд╝рд╛ рдЯреЗрдврд╝рд╛ рд╣реИ, рдЕрдЪреНрдЫрд╛, 30 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдП? '
рдЕрдм, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛, рдЖрдкрдХреЛ 30 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ 'рдЯрд┐рдиреА рд╡рд┐рдВрдбреЛрдЬ' рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

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


All Articles