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

рдЪреВрдВрдХрд┐ рдореИрдВ рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдХреЛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдФрд░ рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рдг рдХреЗ рдХрд╛рд░рдг, рд╢рд╛рдпрдж рдореЗрд░реЗ рдирд┐рд░реНрдгрдп рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред
рдпрд╣ рд▓реЗрдЦ рдбреЗрд╡рд▓рдкрд░ рдХреА рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрдЧрд╛ред рд╕рд╛рдордЧреНрд░реА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд░реБрдЪрд┐ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдлреЗрдЬрд░ рдврд╛рдВрдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлреЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ - рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВред
рддреЛ, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╣реИ!
рдкрд░рд┐рдЪрдп
рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджреЗрддреЗ рд╣реИрдВред
- рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTML5 рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ - рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реИрдкрд░ред
- рдореБрдЦреНрдп рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдлреЗрдЬрд░ 3, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
- рдЧреЗрдо рдХреЛ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдо рдЕрдВрддрд┐рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдореЛ рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдФрд░ рд╕реИрдкрд░ рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ, рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ рдХреЛрдИ рдЦреЗрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рднреВрд▓ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдорд▓рд╛ рд╣реИ, рдирд┐рдпрдореЛрдВ рдХреЛ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ :)
рд╕реИрдкрд░ рдирд┐рдпрдордЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм рдЦреЗрд▓ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╕реЗрд▓ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдмрдо рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрдм рдмрдВрдж рд╕реЗрд▓ рдкрд░ рдмрд╛рдпрд╛рдБ-рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЦреБрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдЦреБрд▓реА рд╕реЗрд▓ рдореЗрдВ рдмрдо рдерд╛, рддреЛ рдЦреЗрд▓ рд╣рд╛рд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рд╕реЗрд▓ рдореЗрдВ рдХреЛрдИ рдмрдо рдирд╣реАрдВ рдерд╛, рддреЛ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдЦреБрд▓реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред рдпрджрд┐ рдЖрд╕-рдкрд╛рд╕ рдХреЛрдИ рдмрдо рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╕реЗрд▓ рдЦрд╛рд▓реА рджрд┐рдЦрддрд╛ рд╣реИред
рдмрдВрдж рд╕реЗрд▓ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЙрд╕ рдкрд░ рдПрдХ рдЭрдВрдбрд╛ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдХрд╛рд░реНрдп рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рднреА рдЭрдВрдбреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд╕рднреА рдЦрдирди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред рд╕рднреА рдЭрдВрдбреЗ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЦрд┐рд▓рд╛рдбрд╝реА рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЬреАрддрд╛ рд╣реИ, рдПрдХ рдЦреБрд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо рд╕реАрдзреЗ рд╕реНрд╡рдпрдВ рдореИрдиреБрдЕрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЫреЛрдЯреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдо рд╕рдордп рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЪрд░рдгрдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдЕрдВрдд рдореЗрдВ рд╣рдо рдПрдХ рдкреВрд░реНрдг рдЧреЗрдо рдмрдирд╛рдПрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ 1. рддреИрдпрд╛рд░реА
1.1 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реИрд╕рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓реЗрдЦрдХ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди
index.js
рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдлрд┐рд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
/src/scripts/
рдмрдирд╛рдПрдВ рдФрд░
index.ts
рдЦрд╛рд▓реА
index.ts
рдлрд╝рд╛рдЗрд▓
index.ts
ред рд╣рдо рдЕрдкрдиреА рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдпрд╣ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рд░реВрдЯ рдореЗрдВ рдПрдХ рдбрд╛рдпрд░реЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдореЗрдВ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
1.2 рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рдПрдБ
рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
webpack/base.js
entry
рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА
ts-loader
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛ рдЯреАрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ tsconfig.json рдлрд╝рд╛рдЗрд▓ рднреА рдмрдирд╛рдиреА рд╣реЛрдЧреАред рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рд╣реИ:
{ "compilerOptions": { "module": "commonjs", "lib": [ "dom", "es5", "es6", "es2015", "es2017", "es2015.promise" ], "target": "es5", "skipLibCheck": true }, "exclude": ["node_modules", "dist"] }
1.3 рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
Package.json рд╕реЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ ts-рд▓реЛрдбрд░ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВ:
npm i npm i typescript --save-dev npm i ts-loader --save-dev
рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ 2 рдХрдорд╛рдВрдб рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
package.json
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ
scripts
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред
package.json
рдлрд╝рд╛рдЗрд▓ред
- рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрд▓реЗрдВ
npm start
- рдмрд┐рд▓реНрдб рдлреЙрд░ рд╕реЗрд▓ рдЪрд▓рд╛рдПрдВ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдХреЛ рдбрд┐рд╕реНрдЯ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ
npm run build
1.4 рд╕рдВрдкрддреНрддрд┐ рдХреА рддреИрдпрд╛рд░реА
рдЗрд╕ рдЧреЗрдо рдХреА рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ
OpenGameArt (рд╕рдВрд╕реНрдХрд░рдг 61x61) рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА
рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЗрдирдореЗрдВ рд▓рд╛рдЗрд╕реЗрдиреНрд╕
рдлрд╝реНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕
рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рдкреИрдХ рд╡рд╛рд▓рд╛ рдкреГрд╖реНрда рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ)ред рд╡реИрд╕реЗ, рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рдореЗрдВ рдПрдХ рд╣реА рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╣реИ! ;)
рдореИрдВрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рд╕реЗрдЯ рд╕реЗ рдШрдбрд╝реА рдХреА рдЫрд╡рд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдмрд╛рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдлреНрд░реЗрдо рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛред рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╛рдореЛрдВ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рд╕реЗ, рд╣рдо
TexturePacker рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ
Phaser JSONArray
рдкреНрд░рд╛рд░реВрдк рдПрдЯрд▓рд╕
рдмрдирд╛рдПрдВрдЧреЗ (рдПрдХ рдореБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ) рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
src/assets/
рдореЗрдВ рдЙрддреНрдкрдиреНрди
рд╕реНрдкреНрд░рд┐рдЯрд╢реАрдЯ ред
Png рдФрд░
spritesheet.json рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рд▓реЗрдВ ред

2. рджреГрд╢реНрдп рдмрдирд╛рдирд╛
реи.рез рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ
рд╣рдо рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдмрдирд╛рдХрд░ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдЧреЗрдо рд╣реИ рд╡рд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рднрд░ рджреЗрдЧрд╛, рд╣рдо рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ
width
рдФрд░
height
рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
scene
рдХреНрд╖реЗрддреНрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд╣реИ рдФрд░ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ!
реи.реи рдЖрд░рдВрдн рджреГрд╢реНрдп
рдкрд╣рд▓реЗ рджреГрд╢реНрдп рдХреЗ рд╡рд░реНрдЧ рдХреЛ
src/scripts/scenes/StartScene.ts
:
export class StartScene extends Phaser.Scene { constructor() { super('Start'); } public preload(): void { } public create(): void { } }
Phaser.Scene
рдХреЗ рдорд╛рдиреНрдп рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд▓рд┐рдП
Phaser.Scene
рд╣рдо рдореВрд▓ рд╢реНрд░реЗрдгреА рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп рдирд╛рдо рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рджреГрд╢реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП рд╕рдВрд╕рд╛рдзрди рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ред
рдЖрдорддреМрд░ рдкрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рджреЛ рджреГрд╢реНрдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП,
Boot => Preload => Start
рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦреЗрд▓ рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИ, рдФрд░ рдЗрддрдиреА рдХрдо рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдХрд┐ рдкреНрд░реАрд▓реЛрдб рдХреЛ рдПрдХ рдЕрд▓рдЧ рджреГрд╢реНрдп рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ
Boot
рд▓реЛрдбрд░ рд╣реИред
рд╣рдо
preload
рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдЯрд▓рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 2 рдЪрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
require
рдЙрдкрдпреЛрдЧ рд╕реЗ png
рдФрд░ json
рдПрдЯрд▓рд╕ рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
- рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрднрд┐рдХ рджреГрд╢реНрдп рдХреЗ
preload
рд╡рд┐рдзрд┐ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ:
2.3 рд╢реБрд░реБрдЖрддреА рджреГрд╢реНрдп рдХреЗ рдЧреНрд░рдВрде
рд╢реБрд░реБрдЖрддреА рд╕реАрди рдореЗрдВ, 2 рдХрд╛рдо рдХрд░рдиреЗ рдмрд╛рдХреА рд╣реИрдВ:
- рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдПрдВ
- рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдкрд╣рд▓ рдкрд░ рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░реЗрдВ
рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдЧреНрд░рдВрдереЛрдВ рдФрд░ рдЙрдирдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджреЛ рдЧрдгрдирд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВ:
рдФрд░ рдлрд┐рд░
create
рд╡рд┐рдзрд┐ рдореЗрдВ рджреЛрдиреЛрдВ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ
create
ред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐
Phaser
рдореЗрдВ рджреГрд╢реНрдпреЛрдВ рдХреЗ
create
рддрд░реАрдХрд╛
preload
рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдПрдХ рдФрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо рдЧреНрд░рдВрдереЛрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдпрд╛ рддреЛ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 2 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рдХрджрдо рдХреЛ рдмреЗрдорд╛рдиреА рдорд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ред
2.4 рдЦреЗрд▓ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕рдВрдХреНрд░рдордг
рдЕрдВрддрд┐рдо рдмрд╛рдд рдЬреЛ рд╣рдо рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ рдХрд░реЗрдВрдЧреЗ, рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЧреЗрдо рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╣реИ:
2.5 рд╕реНрддрд░ рдХрд╛ рджреГрд╢реНрдп
"Game"
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП
this.scene.start
рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
this.scene.start
рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рджреВрд╕рд░рд╛ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдерд╛, рдЬреЛ рдореБрдЦреНрдп рдЦреЗрд▓ рддрд░реНрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред
src/scripts/scenes/GameScene.ts
:
export class GameScene extends Phaser.Scene { constructor() { super('Game'); } public create(): void { } }
рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ, рд╣рдореЗрдВ
preload
рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рджреГрд╢реНрдп рдореЗрдВ рд▓реЛрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИред
2.6 рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкрд░ рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд░рдирд╛
рдЕрдм рдЬрдм рджреЛрдиреЛрдВ рджреГрд╢реНрдп рдмрдирддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
src/scripts/index.ts
:
3. рдЦреЗрд▓ рд╡рд╕реНрддреБрдУрдВ
рддреЛ,
GameScene
рд╡рд░реНрдЧ рдЦреЗрд▓-рд╕реНрддрд░ рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдФрд░ рд╣рдореЗрдВ рд╕реИрдкрд░ рдЧреЗрдо рдХреЗ рд╕реНрддрд░ рд╕реЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рд╣реИ? рдиреЗрддреНрд░рд╣реАрди, рд╣рдо рдмрдВрдж рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЦреЗрд▓ рдореИрджрд╛рди рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рджреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдореЗрдВ рдмрдо рдЖрд░рд╛рдо рд╕реЗ рд░рдЦреЗ рдЧрдП рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
3.1 рдЦреЗрд▓ рдмреЛрд░реНрдб
рд╡рд╣
src/scripts/models/Board.ts
рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ рд╣рдо
Board
рд╡рд░реНрдЧ рд░рдЦрддреЗ рд╣реИрдВ:
import { Field } from "./Field"; export class Board extends Phaser.Events.EventEmitter { private _scene: Phaser.Scene = null; private _rows: number = 0; private _cols: number = 0; private _bombs: number = 0; private _fields: Field[] = []; constructor(scene: Phaser.Scene, rows: number, cols: number, bombs: number) { super(); this._scene = scene; this._rows = rows; this._cols = cols; this._bombs = bombs; this._fields = []; } public get cols(): number { return this._cols; } public get rows(): number { return this._rows; } }
рдЖрдЗрдП рдХрдХреНрд╖рд╛ рдХреЛ Phaser.Events.EventEmitter рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Field
рдХреНрд▓рд╛рд╕ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ
_fields
рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕ рдореЙрдбрд▓ рдХреЛ рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЧреБрдг
_rows
рдФрд░
_cols
рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
_rows
рдФрд░
_cols
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ
_rows
рдмрдирд╛рдПрдБред
_bombs
рдлрд╝реАрд▓реНрдб рд╣рдореЗрдВ рдЙрди рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрддрд╛рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░
_scene
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ
_scene
рд╣рдо
GameScene
рдЧреЗрдо рджреГрд╢реНрдп рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо
Board
рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВрдЧреЗред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдо рджреГрд╢реНрдп рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рд╡рд╕реНрддреБ рдХреЛ рдореЙрдбрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлреЗрдЬрд╝рд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рджреГрд╢реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░реАрдлреИрдм рдмрдирд╛рддреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЦреБрдж рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╕рдордЭреМрддреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рджреГрд╢реНрдп рдХреЛ рд▓рд┐рдВрдХ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╣рдо рдореЙрдбрд▓ рдФрд░ рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рджреГрд╢реНрдп рдХреЗ рдХрд╕реНрдЯрдо рддрд░реАрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдмреЛрд░реНрдб рдирд┐рд░реНрдорд╛рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ
GameScene
рд╕реАрди рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддреЗ рд╣реБрдП, рдЗрд╕реЗ рд▓реЗрд╡рд▓ рд╕реАрди рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛
GameScene
:
рд╣рдо рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреЛрд░реНрдб рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рддрдХ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ
Board
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рднреЗрдЬрддреЗ рд╣реИрдВред
3.2 рд╕реЗрд▓ рдореЙрдбрд▓
рдмреЛрд░реНрдб рдореЗрдВ рд╕реЗрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
src/scripts/models/Field.ts
рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ рдЬрдЧрд╣ рджреЗрдВрдЧреЗ рдЬреЛ рд╕реЗрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
import { Board } from "./Board"; export class Field extends Phaser.Events.EventEmitter { private _scene: Phaser.Scene = null; private _board: Board = null; private _row: number = 0; private _col: number = 0; constructor(scene: Phaser.Scene, board: Board, row: number, col: number) { super(); this._init(scene, board, row, col); } public get col(): number { return this._col; } public get row(): number { return this._row; } public get board(): Board { return this._board; } private _init(scene: Phaser.Scene, board: Board, row: number, col: number): void { this._scene = scene; this._board = board; this._row = row; this._col = col; } }
рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рдореАрдЯреНрд░рд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕реНрдерд┐рдд рд╣реИред рд╣рдо рдмреЛрд░реНрдб рдФрд░ рджреГрд╢реНрдп рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░
_board
рдФрд░
_scene
рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо
_row
,
_col
рдФрд░
_board
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП
_row
рд▓рд╛рдЧреВ
_board
ред
рей.рей рд╕реЗрд▓ рд╡реНрдпреВ
рдЕрдореВрд░реНрдд рд╕реЗрд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдо рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╕реЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
src/scripts/views/FieldView.ts
рдФрд░ рдЙрд╕рдореЗрдВ рд╡реНрдпреВ рдХреНрд▓рд╛рд╕ рдбрд╛рд▓реЗрдВ:
import { Field } from "../models/Field"; export class FieldView extends Phaser.GameObjects.Sprite { private _model: Field = null; constructor(scene: Phaser.Scene, model: Field) { super(scene, 0, 0, 'spritesheet', 'closed'); this._model = model; this._init(); this._create(); } private _init(): void { } private _create(): void { } }
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ
Phaser.GameObjects.Sprite
рдХрд╛ рд╡рдВрд╢рдЬ рдмрдирд╛рдпрд╛ рд╣реИред рдлреЗрдЬрд░ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд░реНрдЧ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░реАрдлреИрдм рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдореБрдЭреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд┐рд▓реА, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВрдЧреЗред
рдЖрдЗрдП рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рджреЗрдЦреЗрдВред рдпрд╣рд╛рдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдирд┐рдореНрди рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
- рджреГрд╢реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдВрдХ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЦрдВрдб 3.1 рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ: рдлреЗрдЬрд╝рд░ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)
x
рдФрд░ y
рдХреИрдирд╡рд╛рд╕ рдкрд░ рд╕рдордиреНрд╡рдп рдХрд░рддреЗ рд╣реИрдВ- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдЬреЛ рдПрдЯрд▓рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкреНрд░рд╛рд░рдВрдн рджреГрд╢реНрдп рдХреЗ
preload
рд╡рд┐рдзрд┐ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдерд╛ - рдлрд╝реНрд░реЗрдо рдПрдЯрд▓ рдХреБрдВрдЬреА рдЗрд╕ рдПрдЯрд▓рд╕ рдореЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдирд┐рдЬреА
_model
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдореЙрдбрд▓ (рдЕрд░реНрдерд╛рдд
Field
рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг) рдХрд╛ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд░реЗрдВред
рд╣рдордиреЗ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг
_create
2 рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрд╛рд▓реА
_init
рдФрд░
_create
рд╢реБрд░реВ
_create
, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рей.рек рджреГрд╢реНрдп рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдирд╛
рддреЛ, рджреГрд╢реНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрднреА рднреА рдирд╣реАрдВ рдЬрд╛рдирддреА рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреИрд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╣реИред рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдХреИрдирд╡рд╛рд╕ рдкрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреА рдирд┐рдЬреА
_create
рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
3.5 рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреЛрдЬрд┐рд╢рдирд┐рдВрдЧ
рдлрд┐рд▓рд╣рд╛рд▓, рд╕рднреА рдмрдирд╛рдП рдЧрдП рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (0, 0) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдореЗрдВ рдмреЛрд░реНрдб рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рдЙрд╕рдХреЗ рдЕрдиреБрд░реВрдк рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрд╕ рдЬрдЧрд╣ рдкрд░ рдЬреЛ рдЗрд╕ рд╕реЗрд▓ рдХреА рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
FieldView
рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд░реНрдЧ рдореЗрдВ
_position
рдЧреБрдг рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд╕реЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:
рдЪреВрдВрдХрд┐ рд╣рдо рдмреЛрд░реНрдб рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖, рд╣рдореЗрдВ
_offset
рд╕рдВрдкрддреНрддрд┐ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдПрдВ рдФрд░ рд╢реАрд░реНрд╖ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд▓ рдХреА рдСрдлрд╕реЗрдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИред рдЗрд╕реЗ рдПрдХ рдирд┐рдЬреА рдЧрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝реЗрдВ:
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо:
- рдЗрд╕рдореЗрдВ рдХреБрд▓ рд╕реНрдХреНрд░реАрди рдЪреМрдбрд╝рд╛рдИ рдорд┐рд▓ рдЧрдИ
this._scene.cameras.main.width
ред - рд╣рдореЗрдВ рдПрдХ рд╕реЗрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдмреЛрд░реНрдб рдХреА рдХреБрд▓ рдЪреМрдбрд╝рд╛рдИ рдорд┐рд▓реА:
this._board.cols * this.width
/ this._board.cols * this.width
ред - рд╕реНрдХреНрд░реАрди рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд░реНрдб рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрдЧрд╣ рдорд┐рд▓реА, рдмреЛрд░реНрдб рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
- рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдмреЛрд░реНрдб рдХреЗ рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдЗрдВрдбреЗрдВрдЯ рд╡реИрд▓реНрдпреВ рдорд┐рд▓реАред
- рдЗрд╕ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рд╢рд┐рдлреНрдЯ рдХрд░рдХреЗ, рд╣рдо
x
рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдмреЛрд░реНрдб рдХреЗ рд╕рдВрд░реЗрдЦрдг рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВред
рд╣рдо рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╡рд┐рд╕реНрдерд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣
_init
рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:
рдЧреБрдг рдпрд╣ред
this.width
,
this.width
,
this.width
, рдпрд╣ред
this.width
рдФрд░
this.height
рдпрд╣рд╛рдБ рд╣реИред рдореВрд▓ рдЧреБрдг
Phaser.GameObjects.Sprite
рдХреЗ рдореВрд▓ рдЧреБрдг рд╣реИрдВред рдЗрд╕
this.x
рдФрд░
this.y
рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реЛ рдЬрд╛рддреА рд╣реИред
3.6 FieldView рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛
Field
рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдПрдБ:
3.7 рдкреНрд░рджрд░реНрд╢рди рдмреЛрд░реНрдб рдлрд╝реАрд▓реНрдбред
рдЪрд▓реЛ
Board
рдХрдХреНрд╖рд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ
Field
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдФрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ред
рд╣рдо рдмреЛрд░реНрдб рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рдХреЛ рдПрдХ рдЕрд▓рдЧ
_create
рд╡рд┐рдзрд┐ рдореЗрдВ
_create
рдФрд░ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐
_create
рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣рдо рди рдХреЗрд╡рд▓ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдПрдВрдЧреЗ, рд╣рдо рдПрдХ рдЕрд▓рдЧ
_createFields
рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб
_createFields
ред
рдпрд╣ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдПрдВрдЧреЗ:
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ
npm start
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣рдореЗрдВ 8 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ 64 рд╕реЗрд▓ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред
3.8 рдмрдо рдмрдирд╛рдирд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐
Board
рдХрдХреНрд╖рд╛ рдХреЗ
_create
рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗред рдФрд░ рдХреНрдпрд╛? рдЗрд╕рдореЗрдВ рдмрдореЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рднреА рд╣реЛрдЧрд╛, рдФрд░ рдмрдирд╛рдИ рдЧрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдбрд╝реЛрд╕реА рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЪрд▓реЛ рдЦреБрдж рдмрдореЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдмреЛрд░реНрдб рдкрд░ рдПрди рдмрдо рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдмрдо рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╣рдо рдЗрд╕ рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЬрдм рддрдХ рд╣рдо рдЗрд╕ рдмрдо рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдХрдИ рдмрдо рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рд╕реЗрд▓ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдореЗрдВ рдПрдХ рдмрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрдореЛрдВ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐
Phaser.Math.Between
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
this._createBombs();
рдореЗрдВ рдЗрд╕
Board.ts
this._createBombs();
рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛
this._createBombs();
_create
рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рдерд╛, рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
empty
setBomb
рдФрд░
setBomb
рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдХрд░
Field
рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
setBomb
ред
рдлрд╝реАрд▓реНрдб
_value
рдПрдХ рдирд┐рдЬреА
_value
рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рд╕реЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдордЭреМрддреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдЗрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╣рдо
Field
рдХреНрд▓рд╛рд╕ рдореЗрдВ рдРрд╕реЗ рддрд░реАрдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд┐
_value
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
3.9 рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛
рдмрдореЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╕реИрдкрд░ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕реЗрд▓ рдореЗрдВ рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕ рд╕реЗрд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реЛред рдЗрд╕ рдирд┐рдпрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд pseudocode рд▓рд┐рдЦрддреЗ рд╣реИрдВред
Board
рдХрдХреНрд╖рд╛ рдореЗрдВ, рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдбрдХреЛрдб рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░реЗрдВ:
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдХреМрди рд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ
getClosestFields
рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЛрд░реНрдб рдХреЗ рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд┐ рдЪрд░рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЪрд░рдо рдХреЙрд▓рдо рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдРрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ: рд╢реАрд░реНрд╖ рдкрд░ 1, рддрд▓ рдкрд░ 1, рдмрд╛рдИрдВ рддрд░рдл 3 рдФрд░ рджрд╛рдИрдВ рдУрд░ 3 (рд╡рд┐рдХрд░реНрдг рдкрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕рд╣рд┐рдд)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ, рд╕рдВрдХреЗрддрдХ
_row
рдФрд░
_col
1 рд╕реЗ рдЕрдзрд┐рдХ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрддрдорд╛рди рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░
_row
рдФрд░
_col
рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВ:
рдФрд░ рдЕрдм рд╣рдо рд▓рд╛рдкрддрд╛ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕ рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░реЗрдВрдЧреЗ:
рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░
field
рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмреЛрд░реНрдб рдкрд░ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ 8 рдкрдбрд╝реЛрд╕реА рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░реА рдмрд╛рдПрдВ рд╕реЗрд▓ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдкрдбрд╝реЛрд╕реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдпрд╣
getField
рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░
Board
рдХреНрд▓рд╛рд╕ рдореЗрдВ
_create
рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ
4. рдЗрдирдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
4.1 рдЯреНрд░реИрдХрд┐рдВрдЧ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХреА рдШрдЯрдирд╛рдУрдВ
рдлрд┐рд▓рд╣рд╛рд▓, рдмреЛрд░реНрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд░рдВрднрд┐рдХ рд╣реИ, рдЗрд╕рдореЗрдВ рдмрдо рд╣реИрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдВрдж рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦреЛрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗ рдФрд░ рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЙрджреНрдШрд╛рдЯрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗредрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдХреНрд╖рд╛ рдореЗрдВ, FieldView
рд╡рд┐рдзрд┐ рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ _create
рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ :
рдлрд╝реЗрд╕рд░ рдореЗрдВ, рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╛рдо рд╕реНрдерд╛рди рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ Phaser.GameObjects
ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ ( pointerdown
) рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдкреНрд░реАрдлреИрдм рдХреЛ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВрдЧреЗ , рдЬреЛ рдХрд┐ FieldView
рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рд╣реИ Phaser.GameObjects.Sprite
редрд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдЙрд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕реБрдирдирд╛ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ setInteractive
рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдордиреЗ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛редрдЕрдм рдЬрдм рд╣рдорд╛рд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХрдХреНрд╖рд╛ Board
рдореЗрдВ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдкрд░ рдирдП рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ Field
, рдЕрд░реНрдерд╛рддреН рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП _createFields
рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣рдо рд╡рд┐рдзрд┐ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ _onFieldClick
, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдХрдХреНрд╖рд╛ рд╕реЗ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ Board
ред рдПрдХ рд░рд╛рдп рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЙрдбрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдмрджрд▓ рджреЗрдВ, рдЬрд┐рд╕рдХреА рд╕рдорд╛рдирддрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреЗрдо рджреГрд╢реНрдп рдХреА рдХрдХреНрд╖рд╛ рд╣реИ GameScene
ред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдХреНрд▓рд┐рдХ рдИрд╡реЗрдВрдЯ рдХреЛ рдХрдХреНрд╖рд╛ Board
рд╕реЗ рджреГрд╢реНрдп рддрдХ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ ред рддреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗ:
рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдлреЗрдВрдХ рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдХрд┐ рдпрд╣ рдХреМрди рд╕рд╛ рдХреНрд▓рд┐рдХ рдерд╛ред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЬрдм рджреГрд╢реНрдп рд╡рд░реНрдЧ рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдмреЗрд╢рдХ, рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рджреГрд╢реНрдп рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдХрд┐ рдШрдЯрдирд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рддрд░реНрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣реА рд░рд╣ рдЬрд╛рдПрдВрдЧреЗ Field
редрдЦреИрд░, рдЕрдм рдЦреЗрд▓ рдХреЗ рджреГрд╢реНрдп рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ GameScene
рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ _create
рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ:
4.2ред рд▓реЗрдлреНрдЯ рдХреНрд▓рд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
рд╣рдо рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдФрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрд▓рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВред рдмрд╛рдИрдВ рдмрдЯрди рджрдмрд╛рдХрд░ рд╕реЗрд▓ рдЦреЛрд▓реЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЙрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдЖрд╡рд╛рдЬрд╝ рджреЗрдВ рдЬреЛ рдкреВрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:- рдмрдВрдж рд╕реЗрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЕрдЧрд░ рдПрдХ рдЦреБрд▓реА рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЦрджрд╛рди рд╣реИ - рдЦреЗрд▓ рдЦреЛ рдЧрдпрд╛ рд╣реИ
- рдпрджрд┐ рдУрдкрди рд╕реЗрд▓ рдореЗрдВ рдХреЛрдИ рдЦрджрд╛рдиреЗрдВ рдпрд╛ рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдорд┐рди рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рд╕рднреА рдкрдбрд╝реЛрд╕реА рд╕реЗрд▓ рдЦреЛрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдРрд╕рд╛ рддрдм рддрдХ рдХрд░рдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдУрдкрди рд╕реЗрд▓ рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
- рдЬрдм рдЖрдк рдПрдХ рдЦреБрд▓реА рд╕реЗрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╕рднреА рдЭрдВрдбреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЧреЗрдо рдХреЛ рдЬреАрдд рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
рдФрд░ рдЕрдм, рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕рдордЭ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрд░реЛрдХреНрдд рддрд░реНрдХ рдХреЛ рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ:
рдЕрдм рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдордЭ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ _onFieldClickLeft
:
рдФрд░ рдлрд┐рд░, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВрдЧреЗ Field
рдФрд░ Board
рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВредрд╣рдо рдПрдиреНрдпреВрдорд░реЗрд╢рди рдореЗрдВ рд╕реЗрд▓ рдХреЗ 3 рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ States
, рдПрдХ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ _state
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдЯреНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рд╣реИрдВ рдХрд┐ рд╕реЗрд▓ рдмрдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рдо рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ open
рдЬреЛ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛:
рдореЙрдбрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдРрд╕реА рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдЬреА рдкрджреНрдзрддрд┐ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ _setState
рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреВрд░реЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдореЙрдбрд▓ рдХреЗ рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдПред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдлрд╝реАрд▓реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПрдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдЬреЛрдбрд╝реЗрдВ_exploded
рдЕрдм рдХрдХреНрд╖рд╛ рдЦреЛрд▓реЗрдВ Board
рдФрд░ рдЙрд╕рдореЗрдВ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░реЗрдВ openClosestFields
ред рдпрд╣ рд╡рд┐рдзрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реНрд╡реАрдХреГрдд рд╕реЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рднреА рдЦрд╛рд▓реА рдкрдбрд╝реЛрд╕реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛редрдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛: :
рдФрд░ рдЗрд╕ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИрдВ:
рдмреЛрд░реНрдб рдкрд░ рдЭрдВрдбреЗ рдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд completed
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдЧреЗрдЯреНрдЯрд░ рдЬреЛрдбрд╝реЗрдВ Board
ред рдпрджрд┐ рдХреЛрдИ рдмреЛрд░реНрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдордВрдЬреВрд░реА рджреЗ рджреА рдЧрдИ рд╣реИ рддреЛ рд╣рдо рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдлрд╝реАрд▓реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдмреЛрд░реНрдб рдкрд░ рдмрдореЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╡рд┐рдзрд┐ рдПрдЯрд░ рдХреЛ рд╕рд░рдгреА _fields
рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ completed
, рдЬрд┐рд╕реЗ рдлрд╝реАрд▓реНрдб рдЪрд┐рд╣реНрди рдХреА рд╡реИрдзрддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИ (рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдлрд╝реАрд▓реНрдб рдЧрд┐рд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЧреЗрдЯреНрдЯрд░ completed
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ Field
) рдлрд╝реАрд▓реНрдб рдорд╛рди _bombs
(рдпрд╛рдиреА рдмреЛрд░реНрдб рдкрд░ рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ ) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ , рддреЛ рд╣рдо рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╣реИрдВ true
, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдЗрд╕ рдЧреЗрдо рдХреЛ рдЬреАрддрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВредрд╣рдо рдПрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдмреЛрд░реНрдб рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рднреА рдирд╣реАрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд╕реНрддрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рднреА рдЬреЛрдбрд╝реЗрдВрдЧреЗ Board
:
рдпрд╣ completed
рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЙрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдмрд╛рдХреА рд╣реИ Field
ред рдХрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдордВрдЬреВрд░реА рджреЗ рджреА рдЬрд╛рдПрдЧреА? рдпрджрд┐ рдЗрд╕реЗ рдЦрдирди рдФрд░ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдЖрд╡рд╢реНрдпрдХ рдЧреЗрдЯреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВрдЧреЗ _onGameOver
рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреВрд░реЗ рдмреЛрд░реНрдб рдХреЛ рджрд┐рдЦрд╛рдПрдВрдЧреЗред рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд┐рддрд┐ рдкреВрд░реНрдгрддрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛрдб рднреА рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ status
ред
4.3 рдлреАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рди
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдирдИ рдЦреЛрд▓реА рдЧрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВредрдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрдХреНрд╖рд╛ рдореЗрдВ, Field
рд╣рдордиреЗ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬреЛ _setState
рдПрдХ рдШрдЯрдирд╛ рдХреЛ рдЖрдЧ рд▓рдЧрд╛ рджреЗрддреА рд╣реИ change
рдЬрдм рдореЙрдбрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣рдо FieldView
рдЗрд╕ рдШрдЯрдирд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ :
рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдзрд┐ _onStateChange
рдХреЛ рдореЙрдбрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХрд╛ рдХреЙрд▓рдмреИрдХ рдмрдирд╛рдпрд╛ ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИ _render
редрдПрдХ рдирдП рд░рд╛рдЬреНрдп рдореЗрдВ рд╕реЗрд▓ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдлреНрд░реЗрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдПрдЯрд▓рд╕ рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо setFrame
рд╡рд░реНрддрдорд╛рди рдлрд╝реНрд░реЗрдо рдХреЛ рдирдП рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЪрд╛рд▓рд╛рдХреА рд╕реЗ рдЧрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ _frameName
, рдЬрд┐рд╕реЗ рдЕрдм рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрди рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗрд▓ рдлреНрд░реЗрдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВредрд╣рдореЗрдВ рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЙрдбрд▓ рдХреЗ рд╕рднреА рддрд░реАрдХреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪрд▓реЛ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдВрдЬреА рдлрд╝реНрд░реЗрдо рдХреЗ рдорд╛рди рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдорд╛рди рдХреЙрд▓рдмреИрдХ рд╣реИрдВ рдЬреЛ рдмреВрд▓рд┐рдпрди рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдлреНрд░реЗрдо (рдЬреЛ рдХрд┐ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдХреБрдВрдЬреА рд╣реИ) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд▓реВрдк рдореЗрдВ рд╕рд░рд▓ рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛, рд╣рдо рдХреЙрдиреНрдлрд┐рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдХреБрдВрдЬреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрджрд▓реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╡рд╣ true
рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ key
рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдХреБрдВрдЬреА рдореЙрдбрд▓ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдлреНрд░реЗрдо рд╣реИредрдпрджрд┐ рдХреЛрдИ рдХреБрдВрдЬреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдЦреБрд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ _value
, рдХреНрдпреЛрдВрдХрд┐ States
рд╣рдордиреЗ рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛редрдЕрдм рд╣рдо рдмреЛрд░реНрдб рдлрд╝реАрд▓реНрдб рдкрд░ рдмрд╛рдИрдВ рдХреНрд▓рд┐рдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдХреИрд╕реЗ рдЦреБрд▓рддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред4.4 рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдПрдВ-рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдЪрдпрдирд┐рдд рд╕реЗрд▓ рдХреЛ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╢рд░реНрддреЗрдВ рд╣реИрдВред- рдХреЗрд╡рд▓ рдПрдХ рдмрдВрдж рдлрд╝реАрд▓реНрдб рдЬрд┐рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕реЗ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдпрджрд┐ рдлрд╝реАрд▓реНрдб рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдлрд┐рд░ рд╕реЗ рдПрдХ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд╝реНрд▓реИрдЧ рдХреЛ рдлрд╝реАрд▓реНрдб рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдзреНрд╡рдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд / рдирд┐рдХрд╛рд▓рддреЗ рд╕рдордп, рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдЭрдВрдбреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ:
рдЕрдм рд╣рдо рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХреЙрд▓ рдореЗрдВ рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдЕрднреА рддрдХ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реЛрдВ:
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рдХреНрд╖реЗрддреНрд░ рднреА рд╢реБрд░реВ рдХрд┐рдпрд╛ _flags
, рдЬреЛ рдХрд┐ рдЦреЗрд▓ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмреЛрд░реНрдб рдкрд░ рдмрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рднреА рдЭрдВрдбрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рд░ рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдзреНрд╡рдЬ рдХреЛ рдпрд╛ рддреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдмреЛрд░реНрдб рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ Board
рдЧреЗрдЯреНрдЯрд░ рдЬреЛрдбрд╝реЗрдВ countMarked
:
рдЭрдВрдбреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╣рдЯрд╛рдирд╛ рдореЙрдбрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИ Field
, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЗрд╕реА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ open
:
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ _setState
рдПрдХ рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ change
рдЬреЛ рджреГрд╢реНрдп рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореЙрдбрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рдЗрд╕ рдмрд╛рд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рд░рдВрдЧ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрд╡рд┐рдХрд╕рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕рд╣реА рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдЦреБрд▓рддрд╛ рд╣реИред рдЙрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЧреЗрдо рджреГрд╢реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ:
4.5 GameSceneView рдСрдмреНрдЬреЗрдХреНрдЯ
рдЧреЗрдо рдХреЗ рджреГрд╢реНрдп рдкрд░ UI рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВрдЧреЗ GameSceneView
рдФрд░ рдЙрд╕рдореЗрдВ рдЬрдЧрд╣ рджреЗрдВрдЧреЗ src/scripts/views/GameSceneView.ts
редрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЕрд▓рдЧ рдПрдХ рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ FieldView
рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдФрд░ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗ GameObjects
редрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рджреГрд╢реНрдп рджреГрд╢реНрдп рд╕реЗ рдирд┐рдореНрди рддрддреНрд╡реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:- рдЭрдВрдбреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд╛рда
- рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдмрдЯрди
- рдЧреЗрдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрджреЗрд╢ (рдЬреАрдд / рд╣рд╛рд░)
рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ UI рддрддреНрд╡ рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ GameSceneView
редрд╣рдо рдПрдХ рд╕реНрдЯрдм рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред enum Styles { Color = '#008080', Font = 'Arial' } enum Texts { Flags = 'FLAGS: ', Exit = 'EXIT', Success = 'YOU WIN!', Failure = 'YOU LOOSE' }; export class GameSceneView { private _scene: Phaser.Scene = null; private _style: {font: string, fill: string}; constructor(scene: Phaser.Scene) { this._scene = scene; this._style = {font: `28px ${Styles.Font}`, fill: Styles.Color}; this._create(); } private _create(): void { } public render() { } }
рдЭрдВрдбреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкрд╛рда рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рдХреЛрдб рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд╛рда рдХреЛ рд╢реАрд░реНрд╖ рдФрд░ рдмрд╛рдИрдВ рдУрд░ рд╕реЗ 50px рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢реИрд▓реА рдкрд░ рд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдзрд┐ setOrigin
рдкрд╛рда рдХреЗ рдзреБрд░реА рдмрд┐рдВрджреБ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (0, 1) рдкрд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╛рда рдЕрдкрдиреА рдмрд╛рдИрдВ рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрдЧрд╛редрдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝реЗрдВред
рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдкрд╛рда рдХреЛ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ setOrigin
x рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ 0.5 рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдХреЗ рдкрдВрдХреНрддрд┐ рдХреЗ рдордзреНрдп рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкрд╛рда рдХреЛ рдЫреБрдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЦреЗрд▓ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рджрд┐рдЦрд╛рдПрдВрдЧреЗредрдПрдХ рдПрдХреНрдЬрд╝рд┐рдЯ рдмрдЯрди рдмрдирд╛рдПрдБ, рдЬрд┐рд╕рдХреЗ рдореВрд▓ рдореЗрдВ рднреА рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред
рд╣рдо рдмрдЯрди рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ setOrigin
рдЗрд╕ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЗрд╕рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╕рд╛рде рдкрд╛рда рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рд╣рдо рдмрдЯрди рдХреЛ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╢реБрд░реБрдЖрддреА рджреГрд╢реНрдп рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рд╕реНрддрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреЗ рд╣реИрдВредрдпрд╣ render
UI рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдирд┐рд░реНрдорд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдХреЙрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ _create
ред
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдпреВрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВредGameScene рд╡рд░реНрдЧ рдореЗрдВ рдЧреЗрдо рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рдПрдБ рдФрд░ рдЬрд╣рд╛рдВ рднреА рдЕрд░реНрде рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╡рд╣рд╛рдВ _render рдкрджреНрдзрддрд┐ рдкрд░ рдХреЙрд▓ рд▓рд┐рдЦреЗрдВ:
5. рдПрдирд┐рдореЗрд╢рди
рдПрдХ рдЧреЗрдо рдмрдирд╛рдиреЗ рд╕реЗ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рд╕рд░рд▓, рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдПрдирд┐рдореЗрд╢рди рдирд╣реАрдВ рд╣реИрдВ?!? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╕реЗ рд╣рдордиреЗ рдлрд╝реИрд╕рд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЖрдЗрдП рд╣рдо рдПрдирд┐рдореЗрд╢рди рдХреА рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВ рдФрд░ рдЬреБрдбрд╝рд╡рд╛рдБ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЬреБрдбрд╝рд╡рд╛рдУрдВ рдХреЛ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИредрдЦреЗрд▓ рдореЗрдВ 2 рдПрдирд┐рдореЗрд╢рди рдЬреЛрдбрд╝реЗрдВ: рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рднрд░рдирд╛ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реЗрд▓ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ред рдЪрд▓реЛ рдЗрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред5.1 рдмреЛрд░реНрдб рдПрдирд┐рдореЗрд╢рди рднрд░реЗрдВ
рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмреЛрд░реНрдб рдХреА рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдЙрдбрд╝рддреА рд╣реИрдВред рдЧреЗрдо рд╕реНрддрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдВрджреЛрд▓рди рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдХрдХреНрд╖рд╛ рдореЗрдВ, FiledView
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ _create
рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ _animateShow
:
B рд╣рдо рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреЗ рдирдП рддрд░реАрдХреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рд╕рд╣рдорддрд┐ рд╡реНрдпрдХреНрдд рдХреА, 2 рдЪреАрдЬреЗрдВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:- рд╕реЗрд▓ рдХреЛ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рдкреАрдЫреЗ рд▓реЗ рдЬрд╛рдПрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рди рджреЗ
- рд╕рд╣реА рджреЗрд░реА рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╡рд╛рдВ рдЖрдВрджреЛрд▓рди рд╢реБрд░реВ рдХрд░реЗрдВ
рдЪреВрдВрдХрд┐ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (0, 0) рд╣реИ, рддреЛ рдЕрдЧрд░ рд╣рдо рд╕реЗрд▓ рдХреЛ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реЗрд▓ рдХреЛ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рдкреАрдЫреЗ рд░рдЦ рджреЗрдЧрд╛ рдФрд░ рд╕реНрдХреНрд░реАрди рд╕реЗ рдЫрд┐рдкрд╛ рджреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд┐рдпрд╛редрдЖрдк рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рджреВрд╕рд░рд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ _moveTo
ред
рдПрдХ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреГрд╢реНрдп рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ tweens
ред рдЙрдирдХреА рдкрджреНрдзрддрд┐ рдореЗрдВ, add
рд╣рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:targets
рдпрд╣рд╛рдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЙрди рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЖрдк рдПрдиреАрдореЗрд╢рди рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ this
рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╛ рдПрдХ рдкреНрд░реАрдлреИрдм рд╣реИред- рджреВрд╕рд░рд╛ рдФрд░ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдо рдЧрдВрддрд╡реНрдп рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред
- рд╕рдВрдкрддреНрддрд┐
duration
рдПрдиреАрдореЗрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - 600msред - рдкреИрд░рд╛рдореАрдЯрд░
ease
рдФрд░ easeParams
рд╕рд╣рдЬрддрд╛ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВред - рджреЗрд░реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рд╣рдо рджреВрд╕рд░реЗ рддрд░реНрдХ рд╕реЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдмреЛрд░реНрдб рдкрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмрд╛рд╣рд░ рди рдирд┐рдХрд▓реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдереЛрдбрд╝реА рджреЗрд░реА рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
- рдЕрдВрдд рдореЗрдВ,
onComplete
рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдПрдХ рдХреЙрд▓рдмреИрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ , рдЬрд┐рд╕реЗ рдЯреНрд╡рд┐рди рдПрдХреНрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рдПрдХ рд╡рд╛рджреЗ рдореЗрдВ рдЬреБрдбрд╝рд╡рд╛ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдПрдирд┐рдореЗрд╢рди рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдбреЙрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ resolve
, рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред5.2 рд╕реЗрд▓ рдлреНрд▓рд┐рдк рдПрдирд┐рдореЗрд╢рди
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐, рдЬрдм рд╕реЗрд▓ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕рдХреЗ рдЙрд▓рдЯ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?рд╡рд░реНрддрдорд╛рди _render
рдореЗрдВ рджреГрд╢реНрдп рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕реЗрд▓ рдХреЛ рдЦреЛрд▓рдирд╛ рдлреНрд░реЗрдо рдХреЛ рдмрджрд▓рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдореЙрдбрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд▓ рдЦреБрд▓реА рдереАред рдпрджрд┐ рдХрдХреНрд╖ рдЦреБрд▓рд╛ рдерд╛, рддреЛ рддреБрд░рдВрдд рдПрдХ рдирдпрд╛ рдЙрддреНрдХреНрд░рдордг рдлреНрд░реЗрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВред
рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ scale
ред рдпрджрд┐ рд╣рдо рд╕рдордп рдХреЗ рд╕рд╛рде рдзреБрд░реА x
рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдпрд╣ рдЕрдВрддрддрдГ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрдХреНрд╖реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рд╕рд┐рдХреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдЖрдк рдзреБрд░реА рдХреЗ рд╕рд╛рде x
рд╢реВрдиреНрдп рд╕реЗ рдЗрд╕рдХреА рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рддрдХ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рддрдХ рдлреИрд▓рд╛рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рддрд░реНрдХ рдХреЛ рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ _animateFlip
ред
рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд░реВрдк, рд╣рдо _moveTo
рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ _scaleTo
:
рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдкреИрдорд╛рдиреЗ рдХрд╛ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдПрдиреАрдореЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЕрдиреНрдп рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВредрдЕрдм рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛! :)
рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореЗрд░реЗ рд╕рд╛рде рдЗрд╕ рдкрд▓ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдХрд░рддрд╛ рд╣реВрдБ!рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ, рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрди рдпрд╛ рдЙрди рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╣рдореЗрд╢рд╛ рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдФрд░ рдлрд╝реИрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ gamedev рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирдП рдкрд░рд┐рдЪрд┐рддреЛрдВ рдФрд░ рдЕрдиреБрднрд╡реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрднреА рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрди рдЫреЛрдЯреЗ рдЦреЗрд▓реЛрдВ рдХрд╛ рдПрдХ рджрд░реНрдЬрди рдЬрдорд╛ рдХрд┐рдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЦреЗрд▓ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд░реВрдкрд░реЗрдЦрд╛ рдЦреЛрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЦреЗрд▓ рдореЗрдВ рд╣рдордиреЗ рдЬреБрдбрд╝рд╡рд╛ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЫреБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рднреМрддрд┐рдХреА, рддрд┐рд▓рдорд╛рдк, рд░реАрдврд╝ рдЖрджрд┐редрдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рд▓реЗрдЦ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЫреЛрдЯреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдЦреЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ? рдпрджрд┐ рдЙрддреНрддрд░ рд╣рд╛рдБ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдЦрд╝реБрд╢реА рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░реВрдБрдЧрд╛ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдирдП рдореИрдиреБрдЕрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдБрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдореИрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрд╡реЗрдХреНрд╖рдг рд▓рд╛рддрд╛ рд╣реВрдВредрдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЖрдк рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛!