рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╕реНрд╡реАрд░рд╢реБрдн рджрд┐рди, рд╣реЗрдмреНрд░!
рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ (рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп) рдореИрдВрдиреЗ рдлреНрд▓реИрдкреА рдмрд░реНрдб рдЧреЗрдо рдХрд╛ рдЕрдкрдирд╛ рдХреНрд▓реЛрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╕рднреА рдЗрд╕ рд╣рд╛рде рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗред рдЗрд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкреНрд░реЗрд░рдХ рдПрдХ рдЫреЛрдЯрд╛ рд╣реИрдХрд╛рдереЙрди рдерд╛ред "рдФрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ," рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдФрд░ рдЗрд╕ рдЦреЗрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ 2 рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдореИрдВрдиреЗ "рд╕рд╛рдЗрдХрд┐рд▓" рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рддреИрдпрд╛рд░ рдЧреЗрдо рдЗрдВрдЬрди - рдлреЗрдЬрд░ рд▓рд┐рдпрд╛ред
рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рд╣рдо рдЦреЗрд▓ рдХреЗ рджреГрд╢реНрдп рдХреЗ рдЖрд░рдВрдн рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ "рдкреНрд░реАрд▓реЛрдбрд░" рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдЦреЗрд▓ рдореЗрдиреВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдлреЗрдЬрд░ рдХреНрдпрд╛ рд╣реИ?
рдлреЗрдЬрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬ, рдореБрдлреНрдд рдФрд░ рдордЬреЗрджрд╛рд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдЧреЗрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдпрд╣ рддреЗрдЬреА рд╕реЗ 2D рдХреИрдирд╡рд╕ рдФрд░ WebGL рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ Pixi.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдлреЗрдЬрд░ рдПрдХ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдЧреЗрдо рдмрдирд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рд╣реИред рд╣рдо рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдкреНрд░рддрд┐рдкрд╛рджрди, рднреМрддрд┐рдХреА - рд╣рдо рдЦреЗрд▓ рддрд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд
рдкреИрдорд╛рдиреЗ Pixi.js. рдпрд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ WebGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдорд╛рдорд▓реЗ рдореЗрдВ WebGL рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдХреИрдирд╡рд╛рд╕ рдкрд░ред
рдлреЗрдЬрд░ рднреА рддреИрдпрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдиреНрдирддрд╛ рджреЗрддрд╛ рд╣реИ: рд╕реНрдкреНрд░рд╛рдЗрдЯрдПрдиреАрдореЗрд╢рди, рдЯрд╛рдЗрд▓рдореИрдк, рдЯрд╛рдЗрдорд░, рдЧреЗрдорд╕реНрдЯреЗрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреЗ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд░рд┐рдЧрд┐рдмреЙрдбреА, рднреМрддрд┐рдХреА рдЖрджрд┐ред
рдЗрди рдШрдЯрдХреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред
рд╣рдо рдлреЗрдЬрд░ рдФрд░ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рдореИрдВрдиреЗ рдХрдИ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕реВрдЪреА рдЫреЛрдЯреА рд╣реИ: рдлреЗрдЬрд░, рд╡реЗрдмрдлреЙрдиреНрдЯ рдФрд░ рдХреНрд▓реЗред рдЦреЗрд▓ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, Google рдлреЛрдВрдЯ рдФрд░ рдЙрдЪреНрдЪ рдЕрдВрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЗ рд╕реЗ рдлреЛрдВрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдлреЙрдиреНрдЯред
рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб index.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИред
index.html<!DOCTYPE html> <head> <meta charset="utf-8"> <title>Flappy Bird</title> <link rel="shortcut icon" href="/favicon.ico" /> <style type="text/css"> * { margin: 0; padding: 0; } </style> </head> <body> <script type="text/javascript"> var Clay = Clay || {}; Clay.gameKey = "gflappybird"; Clay.readyFunctions = []; Clay.ready = function(fn) { Clay.readyFunctions.push(fn); }; (function() { var clay = document.createElement("script"); clay.async = true; clay.src = ("https:" == document.location.protocol ? "https://" : "http://") + "clay.io/api/api-leaderboard-achievement.js"; var tag = document.getElementsByTagName("script")[0]; tag.parentNode.insertBefore(clay, tag); })(); </script> <script src="//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/phaser/1.1.4/phaser.min.js"></script> <script src="js/Game.js"></script> </body> </html>
Index.html рдореЗрдВ рд╣рдо рд╕рд┐рд░реНрдл рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ Game.js рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╣рдо HTML рдХреА рдПрдХ рднреА рд▓рд╛рдЗрди рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдлреЗрдЬрд░ рд╢рд░реАрд░ рдореЗрдВ рд╕реАрдзреЗ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ Phaser рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдХреЛ рднреА рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИредрд╣рдо рдлреЛрдВрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ
Game.js -
GameInitialize () рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░, рд╕рднреА рдЧрдгрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдлреЛрдВрдЯ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдлреЛрдВрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡реЗ рдлреЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WebFont рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
WebFont.load({ google: { families: ['Press+Start+2P'] }, active: function() { GameInitialize(); } });
рд╣рдордиреЗ Google рдлрд╝реЙрдиреНрдЯреНрд╕ рд╕реЗ "рдкреНрд░реЗрд╕ рд╕реНрдЯрд╛рд░реНрдЯ 2P" рдлреЙрдиреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╡реЗрдм" рдХрд╣рд╛ рдФрд░ рдЬрдм рдбрд╛рдЙрдирд▓реЛрдб рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЧреЗрдордЗрдВрдЯрд░рд┐рд▓рд╛рдЗрдЬрд╝ () рдлрд╝рдВрдХреНрд╢рди рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдкреЛрд╕реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ GameInitialize () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред
рд╕реНрдерд┐рд░рд╛рдВрдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ, Phaser.Game рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ, GameStates рдЬреЛрдбрд╝реЗрдВ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рд╣реЛрдВрдЧреЗред рдЪреВрдВрдХрд┐ рдХрд╛рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ "рдорд╛рдиреНрдп" рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
рдЦреЗрд▓ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕рднреА рдирд┐рд░реНрдорд┐рдд рдлреЗрдЬрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЪрд░реЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
рдлреЗрдЬрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЪрд░ рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЪрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред
- рдкреГрд╖реНрдарднреВрдорд┐ - рдпрд╣рд╛рдБ рд╣рдо рд░рдВрдЧ # 53BECE рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
- рдмрд╛рджрд▓ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╣реИред
- рдХреНрд▓рд╛рдЙрдбрд╕рд┐рдорд░ рдПрдХ рдЯрд╛рдЗрдорд░ рд╣реИ рдЬреЛ рдирдП рдмрд╛рджрд▓реЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред
- рдкрд╛рдЗрдкреНрд╕ - рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ред рдмрд╛рджрд▓реЛрдВ рдХреА рддрд░рд╣, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдПрдХ рдкреНрд░реЗрдд рд╣реИред
- рдкрд╛рдЗрдкрд╕реНрдкрд╛рдЗрдорд░ рдПрдХ рдЯрд╛рдЗрдорд░ рд╣реИ рдЬреЛ рдирдП рдкрд╛рдЗрдкреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред
- FreeSpacesInPipes - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рдкрдХреНрд╖реА рдЙрдбрд╝ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЪрд░ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░реЗрдд рдХреЗ рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реИрдВред
- рдмрд░реНрдб - рдПрдХ рдкрдХреНрд╖реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд░рд┐рдЧрд┐рдбрдмреЙрдбреА рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯрдкрд╛рд░реНрдЯ рд╣реИред
- рд╢рд╣рд░ - рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╢рд╣рд░ рдХреЗ рдЯрд╛рдЗрд▓рдкреЙрдЗрдВрдЯред
- рдлреНрд▓реИрдкрд╕рд╛рдЙрдВрдб - рдПрдХ рдзреНрд╡рдирд┐ рдЬреЛ рдорд╛рдЙрд╕ (рдлреНрд▓реИрдк рдкрдВрдЦ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЦреЗрд▓реА рдЬрд╛рддреА рд╣реИред
- рд╕реНрдХреЛрд░рд╕рд╛рдЙрдВрдб - рдПрдХ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╛рдЬрд╝ред
- рд╣рд░реНрдЯрд╕рд╛рдЙрдВрдб - рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдХреА рдЖрд╡рд╛рдЬрд╝, рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдпрд╛ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдкрд░реЗ рдЬрд╛рдирд╛ред
- SoundEnabledIcon, SoundDisabledIcon - рд╢рд╛рдорд┐рд▓ рдзреНрд╡рдирд┐ рдХреЗ рдЖрдЗрдХрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рджреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред
- TitleText, InstuctionsText, DeveloperText, GraphicText - рдкрд╛рда рддрддреНрд╡ рдЬреЛ рд╣рдо рдЦреЗрд▓ рдореЗрдиреВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
- рд╕реНрдХреЛрд░рдЯреЗрдХреНрд╕реНрдЯ - рдЦреЗрд▓ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╛рдаред
- HighScoreTitleText, HighScoreText, PostScoreText - рдЙрдЪреНрдЪ рдЕрдВрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд╛рдаред
- рд▓реЛрдбрд┐рдВрдЧ рдЯреЗрдХреНрд╕реНрдЯ - рдЧреЗрдо рд▓реЛрдбрд┐рдВрдЧ рдЯреЗрдХреНрд╕реНрдЯред
- PostScoreClickArea - рдПрдХ рдЖрдпрдд рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА рдХрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреЛрд╕реНрдЯ рд╕реНрдХреЛрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- isScorePosted - рдзреНрд╡рдЬ, рдЙрд╕реА рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкреБрди: рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдЪреНрдЪ-рд╕реНрдХреЛрд░ рдореЗрдВ рдкреЛрд╕реНрдЯ рд╕реНрдХреЛрд░ рдХреЛ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ)ред
- isSoundEnabled - рдПрдХ рдзреНрд╡рдЬ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рдзреНрд╡рдирд┐ рдЪрд╛рд▓реВ / рдмрдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред
- рд▓реАрдбрд░рдмреЛрд░реНрдб - рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдХреНрд▓реЗрдпреЛ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рд╕рднреА рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо Phaser.Game рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ GameStates рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Phaser.Game () рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
рдирдпрд╛ рдЧреЗрдо (рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ, рд░реЗрдВрдбрд░рд░, рдкреИрд░реЗрдВрдЯ, рд╕реНрдЯреЗрдЯ, рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрдЯ, рдПрдВрдЯреАрд▓рд┐рдпрд╛)
рд╣рдо
рдЪреМрдбрд╝рд╛рдИ ,
рдКрдВрдЪрд╛рдИ ,
рд░реЗрдВрдбрд░рд░ ,
рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдХреИрдирд╡рд╛рд╕ рдХреЗ рдЖрдпрд╛рдо, рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдФрд░ рдЦрд╛рд▓реА рдХрдВрдЯреЗрдирд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рддрд╛рдХрд┐ рдлреЗрдЬрд░ рд╢рд░реАрд░ рдореЗрдВ рдЦреЗрд▓ рдХреЗ рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗред
рд╣рдо рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣рдорд╛рд░реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреЗрдЬрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
var Game = new Phaser.Game(WINDOW_WIDTH, WINDOW_HEIGHT, Phaser.CANVAS, SCENE);
рд╣рдордиреЗ рдЧреЗрдо рд╕реАрди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЧреЗрдо рд╕реНрдЯреЗрдЯрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЧрд▓рддреА рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
Game.state Phaser.StateManager рдХреЛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЦреБрдж рдХреЗ State'ov рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд╕рдорд╛рд░реЛрд╣
() рд╕рдорд╛рд░реЛрд╣ рд╣реИред рдЙрд╕рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░:
рдЬреЛрдбрд╝реЗрдВ (рдХреБрдВрдЬреА, рд░рд╛рдЬреНрдп, рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ)
рд░рд╛рдЬреНрдп (рдЗрд╕рдХреА рдЖрдИрдбреА) рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХреБрдВрдЬреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ,
рд░рд╛рдЬреНрдп рдПрдХ Phaser.State рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ,
рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рдХреЛ рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд░рд╛рдЬреНрдп рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЦреЗрд▓ рдХреЗ рд╕рд╣реА рдХреНрд╖рдгреЛрдВ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреА рдХреЙрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЦреЗрд▓ рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА рдЦреЗрд▓ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
Game.state.add('Boot', BootGameState, false); Game.state.add('Preloader', PreloaderGameState, false); Game.state.add('MainMenu', MainMenuState, false); Game.state.add('Game', GameState, false); Game.state.add('GameOver', GameOverState, false);
рдЗрди рдЦреЗрд▓ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАредрдЧреЗрдордкреНрд▓реЗ рд▓реВрдк рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдВрддрд┐рдо рдЪрд░рдг BootGameState рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред
Game.state.start('Boot');
рдореИрдВ рдкреВрд░рд╛ рдЦреЗрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рджреЗрддрд╛ рд╣реВрдВ:
рдЦреЗрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдЧреЗрдо рд╕реНрдЯреЗрдЯреНрд╕ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?
Phaser рдореЗрдВ Phaser.State () рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдЦреЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд░рд╛рдЬреНрдп рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:
var BootGameState = new Phaser.State();
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдлреЗрдЬрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд╛рдЬреНрдп рдореЗрдВ, 4 рдореБрдЦреНрдп рд▓реВрдк рд╣реИрдВ:
рдХреНрд░рд┐рдПрдЯ ,
рдкреНрд░реАрд▓реЛрдб ,
рд░реЗрдВрдбрд░ ,
рдЕрдкрдбреЗрдЯ ред
- Phaser.State.create рдХреЛ рдПрдХ рд╕рдлрд▓ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЧреЗрдо рдХреЗ рд▓реЙрдЬрд┐рдХ рдХреЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рдлрд┐рд▓рд┐рдВрдЧ рдЖрджрд┐ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
- Phaser.State.preload рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЪрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдпрд╛ рдзреНрд╡рдирд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рддреЛ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдХрд░реЗрдВред
- Phaser.State.render рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдлреНрд░реЗрдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВред
- Phaser.State.update рдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЦреЗрд▓ рдХреЗ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХред
рдЕрдм рд╣рдорд╛рд░реЗ рд╢реБрд░реБрдЖрддреА рд╕реНрдЯреЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬреЛ рдЧреЗрдо рд▓реВрдк рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред
рдмрд╛рдж рдХреЗ рдЦрдВрдбреЛрдВ рдореЗрдВ, рдореИрдВ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЙрд╕ рдЪрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ Phaser.State () рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдЙрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ (BootGameState)
рдЙрджрд╛рд╣рд░рдг Phaser.State рдмрдирд╛рдПрдБред рдЗрд╕рдХреЗ рд╕рдлрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ ..." рдХреЗ рд╕рд╛рде рдкрд╛рда рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд░рдЦреЗрдВред PreloaderState рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред
var BootGameState = new Phaser.State(); BootGameState.create = function() { LoadingText = Game.add.text(Game.world.width / 2, Game.world.height / 2, LOADING_TEXT, { font: '32px "Press Start 2P"', fill: '#FFFFFF', stroke: '#000000', strokeThickness: 3, align: 'center' }); LoadingText.anchor.setTo(0.5, 0.5); Game.state.start('Preloader', false, false); };
рд╣рдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ "рдкреНрд░реАрд▓реЛрдбрд░" рд▓рд┐рдЦрддреЗ рд╣реИрдВ (PreloaderGameState)
рдкреНрд░реЗрдд, рдзреНрд╡рдирд┐, рдПрдиреАрдореЗрд╢рди, рдЖрджрд┐ рдХреЛ рдлреЗрдЬрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлреЗрдЬрд░.рд▓рд╛рдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдкреЙрдЗрдВрдЯрд░ Game.load рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдЬрдм рд╣рдордиреЗ рджреГрд╢реНрдп рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рддреАрди рддрд░реАрдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:
Phaser.Loader.spritesheet(key, url, frameWidth, frameHeight, frameMax, margin, spacing) Phaser.Loader.image(key, url, overwrite) Phaser.Loader.audio(key, urls, autoDecode)
рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдЧреЗрдо рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛:
var loadAssets = function loadAssets() { Game.load.spritesheet('bird', 'img/bird.png', 48, 35); Game.load.spritesheet('clouds', 'img/clouds.png', 64, 34); Game.load.image('town', 'img/town.png'); Game.load.image('pipe', 'img/pipe.png'); Game.load.image('soundOn', 'img/soundOn.png'); Game.load.image('soundOff', 'img/soundOff.png'); Game.load.audio('flap', 'wav/flap.wav'); Game.load.audio('hurt', 'wav/hurt.wav'); Game.load.audio('score', 'wav/score.wav'); };
рдЕрдм PreloaderGameState рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдПрдХ рдирдпрд╛ Phaser.State () рдмрдирд╛рдПрдВред
var PreloaderGameState = new Phaser.State();
рд╣рдо рдкреНрд░реАрд▓реЛрдб рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо loadAssets () рдлрд╝рдВрдХреНрд╢рди рдХрд╣рддреЗ рд╣реИрдВ:
PreloaderGameState.preload = function() { loadAssets(); };
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдлрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдФрд░ рдореЗрдирдореЗрдиреБрд╕реНрдЯреЗрдЯ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
PreloaderGameState.create = function() { var tween = Game.add.tween(LoadingText).to({ alpha: 0 }, 1000, Phaser.Easing.Linear.None, true); tween.onComplete.add(function() { Game.state.start('MainMenu', false, false); }, this); };
рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб PreloaderGameState ():
PreloaderGameState var PreloaderGameState = new Phaser.State(); PreloaderGameState.preload = function() { loadAssets(); }; PreloaderGameState.create = function() { var tween = Game.add.tween(LoadingText).to({ alpha: 0 }, 1000, Phaser.Easing.Linear.None, true); tween.onComplete.add(function() { Game.state.start('MainMenu', false, false); }, this); };
рдЕрдВрдд рдореЗрдВ
рдЗрд╕ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЦреЗрд▓ рджреГрд╢реНрдп, рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реАрд▓реЛрдбрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИред рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдлрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореЗрдирдореЗрдиреНрд╕рдЯреЗрдЯ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЧреЗрдо рдореЗрдиреВ рдХреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
PhaserрдлреЗрдЬрд░ (рдЧрд┐рдЯрд╣рдм)рдлреЗрд╕рд░ (рдкреНрд░рд▓реЗрдЦрди)рдлреЗрдЬрд░ред рдирд╛рдо ()рдлреЗрдЬрд░.рд▓рд╛рдУрдбрд░ ()рдлрд╕рд░ .рд╕реНрдЯреЗрдЯ ()рдлреЗрдЬрд╝рд░ .рд╕реНрдЯреЗрдЯрдореИрдиреЗрдЬрд░ ()рдкрд┐рдХреНрд╕реА.рдЬреЗрдПрд╕ (рдЧрд┐рдЯрд╣рдм)FlappyBirdFlappyBird (GitHub)UPD: рд╣рд╛рд▓ рдХреЗ рдлрд┐рдХреНрд╕ рдореЗрдВ, рдореИрдВрдиреЗ рдлреБрд▓-рд╕реНрдХреНрд░реАрди рдореЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╣реИрдВредрдореИрдВ рд╣реИрдмрд░рд╣рд╛рдм рд╕рдореБрджрд╛рдп рдХреА рд░рд╛рдп рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рдЕрдЧрд▓реА рдХрдбрд╝реА рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдПрдХ рдЦреЗрд▓ рдореЗрдиреВ рдмрдирд╛рдирд╛
- рд╕рднреА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
- рдЕрдЪреНрдЫреА рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝реЗрдВред
- рд╣рдо рдЧреЗрдордкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рдЬ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ