рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐
рд╕реБрдкрд░ рдореАрдЯ рдмреЙрдп рдЬреИрд╕реЗ рдЧреЗрдо рд░рд┐рдкреНрд▓реЗ рдлрдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рд░рдгрдиреАрддрд┐ рдЧреЗрдо рдореЗрдВ рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо C # рдореЗрдВ рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддреАрди-рдЖрдпрд╛рдореА рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЙрдЯ рдЪрд░рд┐рддреНрд░ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ:
- рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВред
- рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
- рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдХреА рдПрдХ рдХрддрд╛рд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реА рдХрд░реЗрдВред
рдиреЛрдЯ : рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХрддрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ C # рдХрд╛ рдФрд╕рдд рдЬреНрдЮрд╛рди рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдПрдХрддрд╛ 2019.1 рдФрд░ C # 7 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдирд╛ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ
рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓реЗрдВред
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рджреГрд╢реНрдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░
рдореБрдЦреНрдп рджреГрд╢реНрдп рдЦреЛрд▓реЗрдВред рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдмреЙрдЯ рдФрд░ рдПрдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдпреВрдЖрдИ рд╣реИ рдЬреЛ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрддрд░ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдХ рдЧреНрд░рд┐рдб рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рд╣рдо рдмреЙрдЯ рдХреЛ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк
Play рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рджреГрд╢реНрдп рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ
рдмреЙрдЯ рд╣реИ ред рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрджрд╛рдиреБрдХреНрд░рдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЪреБрдиреЗрдВред
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ
рдмреЙрдЯ рдШрдЯрдХ рд╣реИред рд╣рдо рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рдХреЗ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдмреЙрдЯ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ
рдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред рдЖрдкрдХреЛ
рдмреЙрдЯ рд▓рд┐рдкрд┐ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рджреЛ рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
Move
рдФрд░
Shoot
ред рдлрд┐рд░, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
Move
рд╡рд┐рдзрд┐ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░
CardinalDirection
рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред
CardinalDirection
рдПрдХ рдЧрдгрди рд╣реИред
CardinalDirection
рдХрд╛ рдПрдХ рдЧрдгрди рддрддреНрд╡
Up
,
Down
,
Right
рдпрд╛
Left
ред рдЪрдпрдирд┐рдд
CardinalDirection
рдЖрдзрд╛рд░ рдкрд░
CardinalDirection
рдмреЙрдЯ рд╕рдВрдмрдВрдзрд┐рдд рджрд┐рд╢рд╛ рдореЗрдВ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдареАрдХ рдПрдХ рд╡рд░реНрдЧ рдЪрд▓рддрд╛ рд╣реИред
Shoot
рд╡рд┐рдзрд┐ рдмреЙрдЯ рдХреЛ рдЖрдЧ рдХреЗ рдЧреЛрд▓реЗ рджрд╛рдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИ рдЬреЛ
рдкреАрд▓реА рджреАрд╡рд╛рд░реЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмреЗрдХрд╛рд░ рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ,
ResetToLastCheckpoint
рд╡рд┐рдзрд┐ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ; рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЛ рджреЗрдЦреЗрдВред
рдЪреМрдХреА рдореЗрдВ рдбреЙрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ
рдЪреМрдХреА рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреЙрдЯ рдХреЛ
рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЬрдм рдПрдХ рдмреЙрдЯ рдПрдХ рдирдП рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рдХрджрдо рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП
рдЕрдВрддрд┐рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
ResetToLastCheckpoint
рдмреЙрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рддрдХ рд╣рдо рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд╣рдо рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рд▓реЗрдВрдЧреЗред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ?
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд 23 рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
: рдПрд░реАрдЪ рдЧрд╛рдорд╛, рд░рд┐рдЪрд░реНрдб рд╣реЗрд▓реНрдо, рд░рд╛рд▓реНрдл рдЬреЙрдирд╕рди рдФрд░ рдЬреЙрди рд╡реНрд▓рд┐рд╕рд╛рдЗрдбреНрд╕ (
рдЬреАрдУрдПрдл , рдЧреИрдВрдЧ рдСрдлрд╝ рдлреЛрд░) рджреНрд╡рд╛рд░рд╛ рдЧреИрдВрдЧ рдСрдлрд╝ рдлреЛрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд
рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмреБрдХ рдХреЗ
рддрддреНрд╡ ред
рд▓реЗрдЦрдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ "рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрдВ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдзреЛрдВ, рдХрддрд╛рд░ рдпрд╛ рд▓реЙрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред"
рд╡рд╛рд╣! рд╡рд╣ рдХреИрд╕реЗ рд╣реИ?
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрдирдХреИрдкреНрд╕реВрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕реЗ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ
рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░рд╛рдЗрдЬреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА "рдХрдорд╛рдВрдб" рдХреЛ рдЕрдиреНрдп рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рддрдм рддрдХ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрд░реЛрдз
рдХрддрд╛рд░ рд╣реИ ред
рдЯреАрдо рдХрддрд╛рд░рдЕрдВрдд рдореЗрдВ,
рдкреНрд░рддрд┐рд╡рд░реНрддреАрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ?
рдХрдорд╛рдВрдб рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ
рдПрдХреНрд╕рдХреНрдпреВрдЯ рд╡рд┐рдзрд┐ рд╣реЛрдЧреА, рдЬреЛ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ (рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬрд┐рд╕реЗ
рд░рд┐рд╕реАрд╡рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╡рд┐рдзрд┐ рдХрдорд╛рдВрдб рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛
рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ рдХрддрд╛рд░, рд╕реНрдЯреИрдХ, рдЖрджрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХреЛ
рдЗрдиреЛрдХрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ
BotCommand
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдмреЙрдЯ рдХреЛ рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рдмреЙрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ
рдмреЛрдЯрдХрдореИрдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред
BotCommand
рд╡рд░реНрдЧ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВ:
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
commandName
рд╡реИрд░рд┐рдПрдмрд▓ commandName
рдЙрдкрдпреЛрдЧ рдорд╛рдирд╡-рдкрдардиреАрдп рдХрдорд╛рдВрдб рдирд╛рдо рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАредBotCommand
рдХреЗ BotCommand
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА Execute
рд╡рд┐рдзрд┐ рдФрд░ рдЙрд╕рдХреЗ name
рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛редExecuteCallback
рдкреНрд░рддрд┐рдирд┐рдзрд┐ ExecuteCallback
рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрдирдХреИрдкреНрд╕реВрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА рдФрд░ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк Bot
(рдШрдЯрдХ рдмреЙрдЯ ) рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧреАредExecute
рд╕рдВрдкрддреНрддрд┐, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧреАред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред- рд╕реНрдЯреНрд░рд┐рдВрдЧ
commandName
рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ToString
рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдЖрдИ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдПред
рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдпрд╣ рдмрд╛рдд рд╣реИ! рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред
рдЯреАрдо рдмрд┐рд▓реНрдбрд┐рдВрдЧ
RW / рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
BotInputHandler рдЦреЛрд▓реЗрдВред
рдпрд╣рд╛рдБ рд╣рдо
BotCommand
рдкрд╛рдБрдЪ рдЙрджрд╛рд╣рд░рдг
BotCommand
ред рдпреЗ рдЙрджрд╛рд╣рд░рдг рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмреЙрдЯ рдХреЛ рдКрдкрд░, рдиреАрдЪреЗ, рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд╛рд▓реЗрдВ:
рдЗрди рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ,
рдПрдХ рдЕрдирд╛рдо рд╡рд┐рдзрд┐ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдирд╛рдо рд╡рд┐рдзрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЧреБрдордирд╛рдо рддрд░реАрдХреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
ExecuteCallback
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдирд╛рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ рдирд╛рдо рдЖрджреЗрд╢ рдЙрджрд╛рд╣рд░рдг рдХреЗ
ToString
рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ UI рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рдкрд╣рд▓реЗ рдЪрд╛рд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдЕрдирд╛рдо рд╡рд┐рдзрд┐рдпрд╛рдВ
bot
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░
Move
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрд▓рдЧ рд╣реИрдВред
MoveUp
,
MoveDown
,
MoveLeft
рдФрд░
MoveRight
,
MoveLeft
CardinalDirection.Right
.
MoveRight
,
CardinalDirection.Down
,
CardinalDirection.Left
рдФрд░
CardinalDirection.Right
рдкрд╛рд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рд╕реЗрдХреНрд╢рди рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмреЙрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
рдкрд╛рдВрдЪрд╡реЗрдВ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрдирд╛рдо рд╡рд┐рдзрд┐
bot
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП
Shoot
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмреЙрдЯ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЧреЛрд▓рд╛ рджрд╛рдЧреЗрдЧрд╛ред
рдЕрдм рдЬрдм рд╣рдордиреЗ рдХрдорд╛рдВрдб рдмрдирд╛рдП рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдЗрдВрд╕реНрдЯреИрдВрд╕ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж,
BotInputHandler
рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб
BotInputHandler
:
public static BotCommand HandleInput() { if (Input.GetKeyDown(KeyCode.W)) { return MoveUp; } else if (Input.GetKeyDown(KeyCode.S)) { return MoveDown; } else if (Input.GetKeyDown(KeyCode.D)) { return MoveRight; } else if (Input.GetKeyDown(KeyCode.A)) { return MoveLeft; } else if (Input.GetKeyDown(KeyCode.F)) { return Shoot; } return null; }
HandleInput
рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред
рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдорд╣рд╛рди, рдЕрдм рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЯреАрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ
рджреГрд╢реНрдп рдкреНрд░рдмрдВрдзрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдк рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ
UIManager
рдЪрд░ рдХреЗ рдПрдХ
uiManager
рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯрд┐рд╕ рджреЗрдЦреЗрдВрдЧреЗред
UIManager
рд╡рд░реНрдЧ
рдЯрд░реНрдорд┐рдирд▓ UI рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐
UIManager
рд╕реЗ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
bot
рдЪрд░ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ
рдмреЙрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдмреЙрдЯ рдШрдЯрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдирд┐рдореНрди рдХреЛрдб рдХреЛ
SceneManager
рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгреА
//1
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
рд╡рд╛рд╣, рдХрд┐рддрдирд╛ рдХреЛрдб! рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд╛ рдордд рдХрд░реЛ; рд╣рдо рдЕрдВрддрддрдГ рдЧреЗрдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдореИрдВ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред
рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдЪрд▓рд╛рдирд╛
рддреЛ рдЕрдм рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдордп рд╣реИ; рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ
рдкреНрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЖрдкрдХреЛ
WASD рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд╛рд▓ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢реВрдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдПрдл рдХреБрдВрдЬреА рджрдмрд╛рдПрдВред рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Enter
рджрдмрд╛рдПрдВ ред
рдиреЛрдЯ : рдЬрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддрдм рддрдХ рдирдП рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рдЯрд░реНрдорд┐рдирд▓ UI рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВред UI рдореЗрдВ рдЯреАрдореЛрдВ рдХреЛ рдЙрдирдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣
commandName
рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ UI рдХреИрд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрдиреЗрдВ рдХреИрд╕реЗ рд╣рдЯрд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
рд╣рдо рдЯреАрдореЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ
рдпрд╣ рдЙрд╕ рдХреЛрдб рдХреЛ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ "рд▓рд╛рдЧреВ рдХрдорд╛рдВрдб" рдЦрдВрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ:
botCommands
рд╕реВрдЪреА botCommands
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ BotCommand
ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдкрд╛рдБрдЪ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рдХрдИ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, executeCoroutine
рдЪрд░ ExecuteCommandsRoutine
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред- рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреБрдВрдЬреА рджрд░реНрдЬ рдХреА рд╣реИ, рддреЛ
Update
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ; рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдпрд╣ ExecuteCommands
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ CheckForBotCommands
рдХреЛ CheckForBotCommands
ред CheckForBotCommands
рдпреВрдЬрд░ рдиреЗ рдЗрдирдкреБрдЯ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ BotInputHandler
рд▓рд┐рдП BotInputHandler
рд╕реЗ рд╕реНрдЯреИрдЯрд┐рдХ HandleInput
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ ред рджреА рдЧрдИ рдХрдорд╛рдВрдб рдХреЛ AddToCommands
рдкрд╛рд╕ рдХрд┐рдпрд╛ AddToCommands
ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐ executeRoutine
рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ AddToCommands
рдХреБрдЫ рднреА рдкрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛редAddToCommands
рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рджрд┐рдП рдЧрдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИредInsertNewText
рд╡рд░реНрдЧ рдХреА InsertNewText
рд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рдкрд░ рдкрд╛рда рдХреА рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреА рд╣реИред рдПрдХ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо commandName
рдХрдорд╛рдВрдбрдирд╛рдо рджреЗрддреЗ рд╣реИрдВредExecuteCommands
рд╡рд┐рдзрд┐ ExecuteCommands
рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИредResetScrollToTop
рд╕реЗ UIManager
рдЯрд░реНрдорд┐рдирд▓ UI рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредExecuteCommandsRoutine
рдореЗрдВ рдПрдХ рд▓реВрдк рд╣реЛрддрд╛ рд╣реИ рдЬреЛ botCommands
рд▓рд┐рд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рдХрдорд╛рдВрдбреНрд╕ рдкрд░ botCommands
рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, bot
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ Execute
рдкреНрд░реЙрдкрд░реНрдЯреА рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, CommandPauseTime
рдореЗрдВ рдПрдХ рдкреЙрдЬрд╝ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИредRemoveFirstTextLine
рд╕реЗ RemoveFirstTextLine
рд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рдореЗрдВ рдореМрдЬреВрдж рдЯреЗрдХреНрд╕реНрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рдореМрдЬреВрдж рд╣реИред рдпрд╛рдиреА рдЬрдм рдХреЛрдИ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдирд╛рдо UI рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред- рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЗ
botCommands
рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж botCommands
рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ ResetToLastCheckpoint
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЙрдЯ рдХреЛ рдЕрдВрддрд┐рдо рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ ResetToLastCheckpoint
ред рдЕрдВрдд рдореЗрдВ, executeRoutine
null
рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред
рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдлрд┐рд░ рд╕реЗ рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЬрдм рд╣рдо рджрд░реНрдЬ рдХрдорд╛рдВрдб рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ
Undo рдФрд░
Redo рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SceneManager.cs рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░
botCommands рдХреЗ рд▓рд┐рдП
рд╕реВрдЪреА рдШреЛрд╖рдгрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдШреЛрд╖рдгрд╛ рдХреЛ
botCommands
:
private Stack<BotCommand> undoStack = new Stack<BotCommand>();
undoStack
рдЪрд░ рдПрдХ рд╕рдВрдЧреНрд░рд╣ (рд╕рдВрдЧреНрд░рд╣ рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ) рд╣реИ рдЬреЛ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рддреН рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╣рдо рджреЛ рддрд░реАрдХреЗ
UndoCommandEntry
рдФрд░
RedoCommandEntry
рдЬреЛ рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдВрдЧреЗред
SceneManager
рд╡рд░реНрдЧ рдореЗрдВ,
ExecuteCommandsRoutine
рдХреЗ рдмрд╛рдж рдирд┐рдореНрди рдХреЛрдб
SceneManager
:
private void UndoCommandEntry() {
рдЖрдЗрдП рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:
- рдпрджрд┐ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛
botCommands
рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИ, рддреЛ UndoCommandEntry
рд╡рд┐рдзрд┐ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ undoStack
рд╕реНрдЯреИрдХ рдкрд░ рджрд░реНрдЬ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХрд╛ рд▓рд┐рдВрдХ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ botCommands
рд╕реВрдЪреА рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред RemoveLastTextLine
рд╕реЗ RemoveLastTextLine
рд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рд╕реЗ рдкрд╛рда рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ рддрд╛рдХрд┐ UI botCommands
рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдореЗрд▓ botCommands
ред- рдпрджрд┐
undoStack
рд╕реНрдЯреИрдХ рдЦрд╛рд▓реА рд╣реИ, рддреЛ RedoCommandEntry
рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ undoStack
рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХреЛ undoStack
рдФрд░ botCommands
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╡рд╛рдкрд╕ botCommands
рд╕реВрдЪреА рдореЗрдВ AddToCommands
ред
рдЕрдм рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
SceneManager
рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░
SceneManager
Update
рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:
if (Input.GetKeyDown(KeyCode.Return)) { ExecuteCommands(); } else if (Input.GetKeyDown(KeyCode.U))
- рдЬрдм рдЖрдк U рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ
UndoCommandEntry
рд╡рд┐рдзрд┐ UndoCommandEntry
ред - рдЬрдм рдЖрдк R рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ
RedoCommandEntry
рд╡рд┐рдзрд┐ RedoCommandEntry
ред
рдПрдЬ рдХреЗрд╕ рд╣реИрдВрдбрд▓рд┐рдВрдЧ
рдорд╣рд╛рди, рд╣рдо рд▓рдЧрднрдЧ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп,
undoStack
рд╕реНрдЯреИрдХ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред - рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ,
undoStack
рд╕реНрдЯреИрдХ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ
SceneManager
рдХреЛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛
SceneManager
ред
CheckForBotCommands
рдмрд╛рдж рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдбрд╛рд▓реЗрдВ:
private void AddNewCommand(BotCommand botCommand) { undoStack.Clear(); AddToCommands(botCommand); }
рдпрд╣ рд╡рд┐рдзрд┐
undoStack
рд╕рд╛рдлрд╝
undoStack
рдФрд░ рдлрд┐рд░
AddToCommands
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред
рдЕрдм рдХреЙрд▓ рдХреЛ
AddToCommands
рдЕрдВрджрд░
CheckForBotCommands
рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реЗ
AddToCommands
:
AddNewCommand(botCommand);
undoStack
рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
ExecuteCommands
рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░
if
рдмрд╛рдж рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
undoStack.Clear();
рдФрд░ рд╣рдо рдЕрдВрдд рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!
рдЕрдкрдирд╛ рдХрд╛рдо рдмрдЪрд╛рдУред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░
Play Editor рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред рдЖрджреЗрд╢реЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
U рджрдмрд╛рдПрдВред рд░рджреНрдж рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП
R рджрдмрд╛рдПрдВред
рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЪреМрдХреА рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?
рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд░реЙрдмрд░реНрдЯ рдирд┐рд╕реНрдЯреНрд░реЙрдо рдХреЗ
рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред
рдЙрдиреНрдирдд C # рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП,
C # рд╕рдВрдЧреНрд░рд╣, Lambdas рдФрд░ LINQ рдкрд╛рдареНрдпрдХреНрд░рдо рд▓реЗрдВред
рдХрд╛рд░реНрдп
рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВрдиреЗ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЫрд┐рдкрд╛ рджрд┐рдпрд╛ред
рдирд┐рд░реНрдгрдп- MoveUp ├Ч 2
- MoveRight ├Ч 3
- MoveUp ├Ч 2
- moveLeft
- рд╢реВрдЯрд┐рдВрдЧ
- MoveLeft ├Ч 2
- MoveUp ├Ч 2
- MoveLeft ├Ч 2
- MoveDown ├Ч 5
- moveLeft
- рд╢реВрдЯрд┐рдВрдЧ
- moveLeft
- MoveUp ├Ч 3
- рд╢реВрдЯ ├Ч реи
- MoveUp ├Ч 5
- MoveRight ├Ч 3