рд╕реАрдПрд╕рдПрд╕, рдЬреЗрдПрд╕ рдФрд░ рдХреИрдирд╡рд╕ рдХреЗ рд╕рд╛рде рдПрдирд┐рдореЗрдЯреЗрдб рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ, рдореИрдВ рдЧрд▓рддреА рд╕реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рд░реЗрдВрдЬрд░реЛрдВ 2 рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛: рдбрд┐рд╕реНрдХ рдЬрдорд╛ рдореЗрдВ рдбреЙрдорд┐рдиреЗрдЯрд░ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЗрддрдирд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рджреЗрдЦ рдкрд╛рдКрдБред рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдХреНрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдлреИрди рдЖрд░реНрдЯ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рд╡рд╣рд╛рдВ рд░реЗрдВрдЬрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдЦрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рднреБрддреНрд╡ рдХрд┐рд╕ рдЪреАрдЬ рд╕реЗ рдмрдиреЗ рд╣реИрдВред рдереЛрдбрд╝рд╛ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдореБрдЭреЗ GAI рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реАрдВред рдореИрдВ рдЙрд╕ рдПрдиреАрдореЗрд╢рди рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдореИрдВ рдЙрдиреНрд╣реЗрдВ "gifs" рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдиреАрдореЗрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдирд╣реАрдВ рджрд┐рдпрд╛? рдЖрдк рдкреАрдПрдирдЬреА рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдлрд╝реНрд░реЗрдо рдпрд╛ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕рднреА рдлрд╝реНрд░реЗрдореЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 150 рдереЗред рдЕрднреА рднреА рдЪрд┐рддреНрд░ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдПрдиреАрдореЗрд╢рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░реЗрдд


рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдиреАрдореЗрд╢рди рд╕реЗ рдЦреБрдж рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ CSS + JS рдХреА рдорджрдж рд▓реАред рдФрд░ рдореБрдЭреЗ 150 рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЙрдирдХрд╛ рд╡рдЬрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдПрдХ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╡рдЬрди рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдПрдХ рд╕рд╛рде рд▓реЛрдб рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдореЗрдВ "рдЧреЛрдВрдж" рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХреЗрд╡рд▓ рдПрдХ рд▓реЛрдб, рдФрд░ рд╕реАрдПрд╕рдПрд╕ + рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ "gluing" рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдореИрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ, рдФрд░ рд╣рдо рд╕рднреА рдЖрд▓рд╕реА рд╣реИрдВ :), рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдореИрдиреБрдЕрд▓ рдЧреНрд▓реВрдЗрдВрдЧ рдХреЛ рддреБрд░рдВрдд рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдореИрдВрдиреЗ рдХреА рдереА, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, PHP рдФрд░ GD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВред рд▓реЗрдХрд┐рди рдкрд╛рд░рднрд╛рд╕реА PNGs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╡рд╛рдВрдЫрд┐рдд рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, "рдЧреЛрдВрдж" рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдФрд░ рд╡рд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рд░ рдХреЛрдИ рд╕реБрди рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЕрдм рдлреИрд╢рдиреЗрдмрд▓ рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдЪрдЯреАрдПрдордПрд▓ 5ред рд╡рд╣ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ - рдХреИрдирд╡рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ "рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ" рдкрд╕рдВрдж рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ "рдХреИрдирд╡рд╛рд╕" рдкрд░ "рдЧреЛрдВрдж" рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдЯреИрдЧ рдХреЛ HTML рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:

<canvas id="sprite"> </canvas> 

рдЬреЗрдПрд╕ рдореЗрдВ рдореИрдВ рдЪрд┐рддреНрд░ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдореБрдЦреМрдЯрд╛, рдкрд╣рд▓реА рддрд╕реНрд╡реАрд░ рдФрд░ рдЕрдВрддрд┐рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реВрдВрдЧрд╛ (рдореБрдЭреЗ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рдХреНрд░рдо рдореЗрдВ рд╣реИрдВ)ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

 var first = '000'; //     var last = 49; //   var num = 0; // var maskFileName = ['2HULL_PEOPLE_P_A_', '.png'];//   var dir = 'ship'; //,     


рдЕрдм рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

 var canvas = document.getElementById("sprite"); //   canvas.width = (last + 1) * 75; // ,     canvas.height = 75; var width = 0; //,      var context = canvas.getContext("2d"); //  


рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ (PHP рд╕реЗ str_pad рдХрд╛ рдПрдирд╛рд▓реЙрдЧ) рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЬрдВрдЧрд▓реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ - zerofikator ():

 function zerofikator(int, length) { //       var prefix = ''; for (var i = num.toString().length; i < length; i++) { prefix += '0'; } return prefix + num; } 


рдЖрдЧреЗ рд╣рдорд╛рд░реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде "рдХреИрдирд╡рд╛рд╕" рдкрд░ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП, рдЕрд░реНрдерд╛рддреНред рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдПрдБ, рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ:

 function draw() { var img = document.createElement('img'); /*          - */ img.onload = function () { //       context.drawImage(img, width, 0); width += 75; //       ,      ,     if (zerofikator(num, first.length) != zerofikator(last, first.length)) { //      num++; //  draw(); //    } } img.src = dir + '/' + maskFileName[0] + zerofikator(num, first.length) + maskFileName[1]; //      } draw(); //   


рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреЗрдЬ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдЪреМрдбрд╝реА рдлреНрд░реЗрдо-рдмрд╛рдп-рдлреНрд░реЗрдо рдЗрдореЗрдЬ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬрд┐рд╕реЗ рдЕрдЧрд░ рд╣рдо рдмрдЪрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдмрдЪрд╛рдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╛ рд╡рдЬрди 615 KB рд╣реИ, рдФрд░ 150 рдЪрд┐рддреНрд░ 1,189 KB рд╣реИрдВ, рд╣рдореНрдо, рдпрд╣ рдПрдХ рдФрд░ рдкреНрд▓рд╕ :) рд╣реИред

рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рддреБрд░рдВрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдЪрдд рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ):

 canvas.onclick = function () { window.location = context.canvas.toDataURL('image/png'); }; 


рдЫрд╡рд┐

рдбреЗрдореЛ

рдПрдиреАрдореЗрд╢рди


рдЦреИрд░, рдЕрдм, рдЖрдк рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
HTML рдореЗрдВ, рд╣рдо "рдбрд┐рд╡рд╛рдЗрдбрд░" рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ:

 <div id="gun"></div> <div id="ship"></div> 


рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛, рдЬреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдореИрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВ:

 var styles = {}; styles.cursor = 'pointer'; //      ,   styles.width = '75px'; //  styles.height = '75px'; var elementId = 'gun'; // id ,     var imgName = 'canvas.png'; //    


рдФрд░ рдлрд┐рд░ рд╕реНрд╡рдпрдВ рдХрд╛рд░реНрдп:

 function spriteAnimation(elementId, imgName, styles) { var img = document.createElement('img'); var offset = 0; img.onload = function () { //    var element = document.getElementById(elementId); element.style.cursor = styles.cursor; element.style.width = styles.width; element.style.height = styles.height; element.style.background = "url('" + imgName + "') " + offset + "px 50%"; //     var i = 0; element.onmouseover = function() { //     interval = setInterval(function() { //  if (offset < img.width) { //    i++; //      } else { i = 0; //     } offset = 75 * i; //   element.style.background = "url('" + imgName + "') " + offset + "px 50%"; //   } , 1000/24) //24    } element.onmouseout = function(){ //      clearInterval(interval) //  ( ) } } img.src = imgName; //    } 


рдЕрд░реЗ рд╣рд╛рдБ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 spriteAnimation(elementId, imgName, styles); spriteAnimation('ship', 'ship.png', styles); 


рдФрд░ рдЬрдЧрд╣ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 <img src="fon.png" /> <div class="conteiner"><div id="gun"></div></div> 


рдЫрд╡рд┐

рдбреЗрдореЛ

рд╕реНрд░реЛрдд рдХреЛрдб

рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ - "рд╕рд┐рд░реНрдл рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП"ред рдФрд░ рдЖрдк рдЕрдкрдирд╛ рд╕рдордп рдмрд╛рд░рд┐рд╢ рдХреА рд╢рд░рдж рдЛрддреБ рдХреА рд╢рд╛рдо рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрддреАрдд рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles