рдПрдХреНрд╕рдПрдирдП рдФрд░ рдореЛрдиреЛрдореЗрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ 8 рдЧреЗрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рдмрд╣реБрдд рд╕реА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреАрдВ, рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ 8 рдХреЗ рд▓рд┐рдП WinRT рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдмрддрд╛рддреА рд╣реИрдВред рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдк C # рдореЗрдВ WinRT рдЧреЗрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред




рдпрджрд┐ рдЖрдк WinRT рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рдереЗ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 рдХреА рдкреЗрд╢рдХрд╢ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдХрдиреАрдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП C ++ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдЧрд╣рди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдПрдкреАрдЖрдИ рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╣рд▓рд╛ рдХрджрдо рдЙрдард╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдордВрдЪ рдХреЗ рдпреБрд╡рд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдЕрдм рддрдХ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЦреЗрд▓ рдФрд░ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдирд╣реАрдВ рд╣реИрдВ, рдлрд┐рд░ рднреА, рдЙрдирдХреА рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:



рдкрд┐рдЫрд▓реЗ рджреЛ - SharpDX рдФрд░ MonoGame рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред SharpDX рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ рдФрд░ рдЖрдкрдХреЛ .NET рд╕реЗ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ WinRT рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ XNA рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреЛрд░реНрдЯ рдореЛрдиреЛрдореЗрдЧ, WinRT рдкрд░ рднреА рдЪрд▓рддрд╛ рд╣реИред
XNA рд╡рд┐рдВрдбреЛрдЬ, Xbox360 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдЬрд╛рд░реЛрдВ рдЧреЗрдо рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдореЛрдиреЛрдЧреЛ рдиреЗ рдореБрдЦреНрдп рд╕реНрдХреЛрдк рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рдПрдХреНрд╕рдПрдирдП рд╕реЗ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдореМрдЬреВрджрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ



MonoGame рдкрд░ WinRT рдХреЗ рд▓рд┐рдП рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Visual Studio 2012 рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SharpDX рдФрд░ MonoGame рдХреЗ рдЗрдХрдЯреНрдареЗ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рдЖрдЧреЗ рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдореЛрдиреЛрдореЗрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреА рд╕рдордЭ рдмрдврд╝рд╛рдПрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдЖрд╕рд╛рди рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ: sharpdx.org/download (рдпрд╛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓-рдкреИрдХреЗрдЬ SharpDX рдЯрд╛рдЗрдк рдХрд░реЗрдВ) рдФрд░ monogame.codeplex.com/releases/view/96421

рдЕрдЧрд░ рдЖрдк рдЦреБрдж рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
:
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП D:\Gamedev

  1. Git рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: msysgit.github.com
  2. Git Bash (git рдХрдВрд╕реЛрд▓) рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА D:\Gamedev
  3. рд╣рдореЗрдВ SharpDX рдХреЗ рд╕реНрд░реЛрдд рдорд┐рд▓рддреЗ рд╣реИрдВ: git clone github.com/sharpdx/SharpDX
  4. рд╣рдореЗрдВ рдореЛрдиреЛрдЧреЗрдо рдХреЗ рд╕реНрд░реЛрдд рдорд┐рд▓рддреЗ рд╣реИрдВ: git clone github.com/mono/MonoGame
  5. рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 x86 рдиреЗрдЯрд┐рд╡ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдореВрд▓ рд╢рдмреНрдж рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ)
  6. рд╣рдо cd D:\Gamedev\SharpDX рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ cd D:\Gamedev\SharpDX рдФрд░ рдХрдорд╛рдВрдб MakeSharpDX.cmd win8 build рд▓рдЧрднрдЧ 3-4 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдкрд╛рд╕ SharpDX рд╣реЛрдЧрд╛ рдФрд░ рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА D:\gamedev\sharpdx\Bin\Standard-winrt\
  7. рдЕрдм рд╣рдореЗрдВ рдореЛрдиреЛрдЧреЛрдореА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Visual Studio 2012 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, D:\gamedev\MonoGame\MonoGame.Framework.Windows8.sln рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ, рдЕрдм рдореЛрдиреЛрдУрдо рдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрдХрдЯреНрдареЗ рд╣реБрдП SharpDX рдЕрд╕реЗрдВрдмрд▓реА рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВ рдФрд░ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рддреА рд╣реИрдВ:

  8. рд╕рдВрджрд░реНрдн рдкрде рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдг (рд╕рдВрджрд░реНрдн рдореЗрдиреВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЧреБрдг ) рдореЗрдВ, рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ D:\gamedev\sharpdx\Bin\Standard-winrt\
  9. рд╣рдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд╕реЗрдВрдмрд▓реА рд╣реЛрдЧреА D:\gamedev\MonoGame\MonoGame.Framework\bin\Release\MonoGame.Framework.Windows8.dll
  10. Visual Studio рдореЗрдВ MonoGame рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, D:\gamedev\MonoGame\ProjectTemplates\VisualStudio2012\ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ C:\Users\USERNAME\Documents\Visual Studio 2012\Templates\ProjectTemplates\Visual C#\Mono\ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ рдФрд░ рдлрд┐рд░ Visual Studio рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдЖрдзрд╛рд░ рдмрдирд╛рдПрдБред рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП:

  11. рдирд╡ рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ D:\gamedev\MonoGame\MonoGame.Framework\bin\Release\ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдкрде рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ


рдлрд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред рдмрдзрд╛рдИ рд╣реЛ, рдЖрдкрдиреЗ WindowsRT рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдореЛрдиреЛрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рдл рдиреАрд▓реА рд╕реНрдХреНрд░реАрди, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИред
  public class Game1 : Game { GraphicsDeviceManager _graphics; SpriteBatch _spriteBatch; public Game1() { _graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } /// protected override void Initialize() { base.Initialize(); } ///    protected override void LoadContent() { _spriteBatch = new SpriteBatch(GraphicsDevice); //Content.Load<SpriteFont>... } protected override void UnloadContent() { } ///   protected override void Update(GameTime gameTime) { base.Update(gameTime); } ///   protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); base.Draw(gameTime); } } 


рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ



рдпрджрд┐ рдЖрдк XNA рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ XNA рдХреАрд╡рд░реНрдб рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕рд╛рдордЧреНрд░реА рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдРрд╕реЗ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрдХрдиреАрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рдЖрдк рдХреИрд╕рд▓рдПрдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЧреЗрдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ 8 рдкрд░ рдЪрд▓рддрд╛ рд╣реИ ред



рдпрд╣ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ platformer рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреВрджрддрд╛ рд╣реИ, рдЪрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реА рд╕рдордп рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЦрддрд░реЛрдВ рд╕реЗ рдЦреБрдж рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
рдЕрдм рддрдХ, рдпрд╣ рдЧреЗрдо рд╡рд┐рдВрдбреЛрдЬ 8 рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рдирд╣реАрдВ рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдиреНрдпреВрдирддрдо рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ WinRT рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред
рдХреИрд╕рд▓ рдПрдХреНрд╕ рдЧреЗрдо рдХреЗ Assets рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ, рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ - рдпреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡ рдФрд░ рд╕реНрддрд░ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХреНрд╕рдПрдирдмреА рдХрд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред



рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХрд┐ рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдЬрдм рдореЛрдиреЛрдЧреЗрдо рдХреЗ рд▓рд┐рдП рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдХрдВрдЯреЗрдВрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА рд╣реИред рдПрдХреНрд╕рдПрдирдП 4.0 рдореЗрдВ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХреЗ рд▓рд┐рдП рдРрдб-рдСрди рдореЗрдВ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдерд╛ рдЬреЛ рдЧреЗрдо рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдФрд░ рдСрдбрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдХреНрд╕рдПрдирдмреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреИрдХ рдХрд░рддрд╛ рдерд╛ред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдФрд░ XNA рдЧреЗрдо рд╕реНрдЯреВрдбрд┐рдпреЛ 4.0 рд░реАрдлреНрд░реЗрд╢ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдВрдбреЛрдЬ 8 рдбреЗрд╕реНрдХрдЯреЙрдк рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП XNA рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк VS2010 рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ XNA рд╕рд╛рдордЧреНрд░реА рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЦреЗрд▓ рдХреИрд╕рд▓рдПрдХреНрд╕ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ


рдЦреЗрд▓ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рддрд░реНрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдХреНрд░реАрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреНрд░реАрди рд╣реИрдВ (рдЙрдирдХреА рдХрдХреНрд╖рд╛рдПрдВ / рджреГрд╢реНрдп / рд╕реНрдХреНрд░реАрди / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░реАрдирд╕реЗрд╡рд░ рд╕реНрдХреНрд░реАрди, рдПрдХ рдбреЗрдореЛ рдкреНрд▓реЗрдмреИрдХ рд╕реНрдХреНрд░реАрди, рдПрдХ рд╕реНрддрд░ рд╕реНрдХреНрд░реАрди, рдПрдХ рдЧреЗрдо рдореЗрдиреВ рд╕реНрдХреНрд░реАрди, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╕реНрдХреНрд░реАрди рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ScreenManager рдХреЛ DrawableGameComponent рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред

 Components.Add(screenManager); 


рдЧреЗрдо рдХреЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдореИрдиреЗрдЬрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЬреЛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЙрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
ScreenManager рдЦреБрдж рдбреНрд░рд╛ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рддрд░реНрдХ рдХреЛрдб рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ:

  public override void Draw(GameTime gameTime) { ViewPort = GraphicsDevice.Viewport; foreach (GameScreen screen in screens) { if (screen.ScreenState == ScreenState.Hidden) continue; try { SpriteBatch.Begin(); } catch { } screen.Draw(gameTime, SpriteBatch); try { SpriteBatch.End(); } catch { } } } 


рд╕реНрдХреНрд░реАрди рд╕реНрд╡рдпрдВ, рдмрджрд▓реЗ рдореЗрдВ, HandleInput рд╡рд┐рдзрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ HandleInput рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред

рдЦреЗрд▓ рд╕реНрддрд░ рд╕реНрдХреНрд░реАрди



рдЧреЗрдо рд╕реНрддрд░ рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдореЗрдВ рд╡рд╕реНрддреБ "рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░" рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд░ level рдкрд░ рд╣реЛрддреА рд╣реИред рд╕реНрддрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдХреА Draw рд╡рд┐рдзрд┐ рдореЗрдВ, рдХреЙрд▓ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕реНрддрд░ ( leve.Draw ) рдХреЗ Draw рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реВрдЪрдирд╛ рдкреИрдирд▓ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХреА рдЧрдИ рдЬреАрд╡рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - DrawHud(gameTime, spriteBatch);

рдЦреЗрд▓ рдХрд╛ рд╕реНрддрд░


рд╕реНрддрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ Tile рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкрд░рддреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЙрд╕ рдХреНрд░рдо рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдЬреЛ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реИ):

  private Tile[,] tiles; private Layer[] layers; 


Tile рдмрджрд▓реЗ рдореЗрдВ, рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рджрд░рд╡рд╛рдЬрд╛, рдИрдВрдЯ рдХреА рджреАрд╡рд╛рд░ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛, рдкрд╛рдиреАред рдЯрд╛рдЗрд▓реЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдЯрд╛рдЗрд▓реЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИрдВ, рдПрдХ рдЯрд╛рдЗрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрдХрд░рд╛рд╡ рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИ - рдЦреЗрд▓ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрддреНрд╡:

  public enum TileCollision { /// <summary> ///  ,      /// </summary> Passable = 0, /// <summary> ///        /// </summary> Impassable = 1, /// <summary> ///  ,          /// </summary> Platform = 2, /// <summary> /// ,   /// </summary> Ladder = 3 } 


рдЯрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдмрдирд╛рд╡рдЯ рднреА рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, content.Load<>() рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЛрдб content.Load<>() рд╡рд┐рдзрд┐ред
рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдФрд░ рдЦреБрдж рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ - рдПрдирд┐рдореЗрдЯреЗрдб рдЯрд╛рдЗрд▓реЗрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдЪрд░рд┐рддреНрд░, рд░рд╛рдХреНрд╖рд╕, рдЪрд╛рдмрд┐рдпрд╛рдБ, рд╕рд┐рдХреНрдХреЗред

рд╕реНрддрд░ рд╕реНрд╡рдпрдВ рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд╛рдЗрд▓реЗрдВ рдФрд░ рд╡рд╕реНрддреБрдПрдБ:

####################
X4001.................!..
.x2..EG0102...............!X1003.
\
##L.######..########
##L.........#CCCCCCX3003.
##L.......N..#CCCCCCx5..
##L.......EG0102..########
##L....N..#####......
##L...EG0102.......#.....X2003.
##L..####....#....x4..
##L..........#W....##
##L...N....N...#....##
##L...EG0102......i#www###
#############www####
wwwwwwwwwwwwwww#####
X6001wwwwwwwwwwwwwww#####
wx6wwwwwwwwwwwww######
2!2!2!2!2!2!2!2!2!2!
tit.Platforms and ghosts
des.Face your first enemies inside the castle!
Layer2.Bricks.Bricks.Bricks


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓ рдПрдХ рд╕реАрдврд╝реА рд╣реИ, рдИ рдПрдХ рдЦрддрд░рдирд╛рдХ рдЪрд░рд┐рддреНрд░ рд╣реИ, рд╕реА рдПрдХ рд╕рд┐рдХреНрдХрд╛ рд╣реИ,! - рдЕрдЧрдореНрдп рдЯрд╛рдЗрд▓, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╕рднреА рдХреЛрдб LoadTile(char tileType, int x, int y, String code) рд╡рд┐рдзрд┐ LoadTile(char tileType, int x, int y, String code) рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдЙрдирдХреЗ рд░рд╛рдЬреНрдп рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг Level::Update рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, рдПрдХ рдмрд╛рдИрдВ рдХреБрдВрдЬреА рдкреНрд░реЗрд╕ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╡рд╕реНрддреБ рдХреЛ рдЪрд▓рддреА рдордВрдЪ рдХреА рдЯрд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА (рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╡рд╕реНрддреБ рдмрджрд▓ рдЬрд╛рдПрдЧреА)
 private void UpdateMovingItems(GameTime gameTime) { if (MovingItemsAreActive) { for (int i = 0; i < MovingItems.Count; ++i) { MovingItem movingItem = MovingItems[i]; movingItem.Update(gameTime); if (movingItem.PlayerIsOn) { //         screenManager.Player.Position += movingItem.Velocity; } } } } 


рдЦреЗрд▓ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдирд╣реАрдВ рд╣реИ, рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рднреМрддрд┐рдХреА рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ (рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рд░рдВрдЧ, рдЖрджрд┐) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:

 private void ApplyPhysics(GameTime gameTime) { float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds; if (isFalling) { velocity.Y = MathHelper.Clamp(velocity.Y + GravityAcceleration * elapsed, -MaxFallSpeed, MaxFallSpeed); Position += velocity * elapsed; } } 


рд╕рднреА рдШрдЯрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд▓ рдкрд▓ Draw() рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрддрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ, рдЬреЛ рдмрд╕ рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдЬреЛ рд╕реНрддрд░ рдкрд░ рд╣реИрдВ:

 DrawTiles(spriteBatch); foreach (Item item in items) item.Draw(gameTime, spriteBatch); foreach (MultipleStateItem item in multipleStateItems) item.Draw(gameTime, spriteBatch); foreach (AnimatedItem item in animatedItems) item.Draw(gameTime, spriteBatch); foreach (FallingTile FallingTile in FallingTiles) FallingTile.Draw(gameTime, spriteBatch); foreach (Exit exit in exits) exit.Draw(gameTime, spriteBatch); foreach (Boss boss in bosses) boss.Draw(gameTime, spriteBatch); 


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЧреЗрдо рдХреЛрдб рдФрд░ рдЗрд╕рдХреЗ рддрд░реНрдХ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдХрд╛рдлреА рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ



рдЪреВрдВрдХрд┐ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреЗрдо рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ WinRT рдФрд░ рдореЛрдиреЛрдЧреЗрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ, рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:



рдЗрди рдШрдЯрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд┐рдВрдбреЛрдЬ 8 рдФрд░ рдореВрд▓ рдЧреЗрдо рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ - рдпрджрд┐ рдЖрдк XNB рдлрд╛рдЗрд▓ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рд╕рд╛рдЙрдВрдб) рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред

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


All Articles