
рд╣реИрд▓реЛ, рдкреНрд░рд┐рдп рд╣реИрдмрд╛рдкреВрд╕рд░!
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рднреА рдиреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░
рдЯреЗрд░рд╛рд░рд┐рдпрд╛ рдЬреИрд╕реЗ рдЕрджреНрднреБрдд рдЦрд┐рд▓реМрдиреЗ рдХреЛ рдЦреЗрд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдЬ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧреЗрдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд░реБрдЪрд┐ рд╣реИ - рд╣реИрдмреНрд░рдХрдЯ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЯреЗрд░рд╛рд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
Minecraft рдХреА рдЕрднреВрддрдкреВрд░реНрд╡ рд╕рдлрд▓рддрд╛, рдЬреЛ рдХрд┐ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╕реЗ рд░рд╣реА рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдорд╛рд░реНрдХрд╕ рдкрд░реНрд╕рди рдХреЛ рд▓рд╛рдЦреЛрдВ рдореЗрдВ рд▓рд╛рдпрд╛ рд╣реИ, рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдРрд╕рд╛ рд╣реА рд╣реБрдЖ, рдЬрд▓реНрдж рд╣реА
рдЯреЗрд░рд╛рд░рд┐рдпрд╛ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╡реНрдпрдХреНрддрд┐ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИ,
рдПрдВрдбреНрд░рдпреВ рд╕реНрдкрд┐рдВрдХреНрд╕ , рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрдирд░ рдФрд░ рдЕрдВрд╢рдХрд╛рд▓рд┐рдХ рдХрдо рд╕реЗ рдХрдо рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ред
рдЬрдм рд╕реНрдерд╛рдиреАрдп "рдЖрда-рдмрд┐рдЯ" рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рд╣рд╛рдпрдХ рдЕрд╡рдЪреЗрддрди рддреБрд░рдВрдд "2D рдореЗрдВ Minecraft" рд▓реЗрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛? рдПрдХ рдмреИрдХрдкреИрдХ рдореЗрдВ - рдПрдХ рдкрд┐рдХреИрдХреНрд╕ рдФрд░ рдПрдХ рдХреБрд▓реНрд╣рд╛рдбрд╝реА, рд▓рдЧрднрдЧ - рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рд░рд┐рдХреНрдд рд╕реНрдерд╛рдиред рд▓рдХреНрд╖реНрдп рдЦреБрджрд╛рдИ, рдирд┐рд░реНрдорд╛рдг, рд╣рддреНрдпрд╛, рдореЗрд░рд╛ рд╣реИред
рдЖрдк рдЗрд╕ рдЦреЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдЦ рдкрдврд╝рдХрд░ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдЦреИрд░, рд╣рдмрд░ рдХреЛ рддрдХрдиреАрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЧреЗрдо рдХреЛ X # рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C # (.NET 4.0) рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╣реИрдмрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рдпрд╣рд╛рдБ ,
рдпрд╣рд╛рдБ рдФрд░
рдпрд╣рд╛рдБ ред
рдЦрд┐рд▓реМрдирд╛ рд╕реАрдЦрдирд╛
рдЦреЗрд▓ рдХреЛ рдЦрд░реАрджрд╛, рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рджреЛ рд╕рдкреНрддрд╛рд╣ рддрдХ рдЦреЗрд▓рддрд╛ рд░рд╣рд╛ - рдЗрд╕рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ - рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЦреЗрд▓ XNA рдФрд░ .NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
.NET рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ ред
Terraria.exe рдЦреЛрд▓реЗрдВ, рдореБрдЦреНрдп (рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рджреЗрдЦреЗрдВ:

рд╣рдо рдордЬрд╝реЗрджрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:
Steam.Init(); if (Steam.SteamInit) { main.Run(); } else { MessageBox.Show("Please launch the game from your Steam client.", "Error"); }
рдпрд╛рдиреА рдпрджрд┐ рдХреЛрдИ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдЯреАрдо рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЧреЗрдо рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд┐рддреНрд░ рдХреЛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕реНрдЯреАрдо рдирд╣реАрдВ рд╣реИ, рддреЛ рдЧреЗрдо рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред
рдЗрд╕ "рд╕реБрд░рдХреНрд╖рд╛" рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣
steam_api.dll (рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдпрд╛ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕реНрдЯреАрдо рдЦреБрдж рдЧреЗрдо рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдЕрдкрдирд╛ рд▓реЗрдЖрдЙрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреЗрд▓ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЦреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ - XNA, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЦреЗрд▓ рдХрд╛ рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ Microsoft.XNA.Framework.Game рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдХреЛ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛, рдпрд╣
рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИред
рдПрдХреНрд╕рдПрдирдП рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд┐рд╕реА рднреА рдЦреЗрд▓ рдореЗрдВ рддрдерд╛рдХрдерд┐рдд "рдШрдЯрдХ" рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдШрдЯрдХ рдпрд╛ рддреЛ рд╕рд╛рдзрд╛рд░рдг (рддрд░реНрдХ) рдпрд╛ рдЪрд┐рддреНрд░рдордп (рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рд╡рд░реНрдЧ
рдореБрдЦреНрдп рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд╢реЛрдзрдХ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдореБрдЦреНрдп рд╣реИ: рдЧреЗрдо {...})!
рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдЦрддрд░рд╛ рд╣реИ? рд╣рдо рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ Terraria.exe рдХреЛ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╣рдо рдЧреЗрдо рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдШрдЯрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдШрдЯрдХ рдХреА рдЧреЗрдо рдореЗрдВ рд▓рдЧрднрдЧ рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред
рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░
рд╕рд┐рдВрдЧрд▓рдЯрди рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдХреНрд╕реЗрд╕
рдХрд╛ рднрд╛рд░рддреАрдп рд╕рдВрд╕реНрдХрд░рдг рд╣реИ , рдЬреЛ рдХрд┐,
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рднреА рд╣реИред
рдпрд╣ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗ рдЕрд▓рдЧ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рджреЗрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред
рдЖрдЧреЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдПрдХ рдШрдЯрдХ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯрдмреИрдЪ рдкрд░ рдЯреЗрд░рд╛рд░рд┐рдпрд╛ рднреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдбреНрд░реЙрдПрдмрд▓ рдХреЙрдордкреЙрдиреНрдЯреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдереАрдВ, рдЬреИрд╕реЗ рдпрд╣
рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рдореБрдЦреНрдп рдЖрд░реЗрдЦрдг рд╕реЗ рдкрд╣рд▓реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ
рдбреНрд░рд╛рдСрдбрд░ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЦреЗрд▓рддрд╛
рд╣реВрдВ ред
рдлрд┐рд░, рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ
рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦрд╛, рдЗрд╕рдореЗрдВ
рд╕реАрд▓рдмрдВрдж рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВ рдерд╛, рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рднреА рд╕реБрдЧрдо рдФрд░ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ: рдмрд╕ рд╣рдорд╛рд░реЗ
рдореБрдЦреНрдп рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ
рд╣рдо рдПрдХ рдирдпрд╛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдо
Microsoft.Xna.Frameworkред * ,
Terraria.exe рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЕрдм рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ
рдореБрдЦреНрдп рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛:
sealed class InjectedMain : Terraria.Main { private SpriteFont font; private SpriteBatch spriteBatch; internal InjectedMain() : base() { } protected override void LoadContent() { base.LoadContent(); font = Terraria.Main.fontMouseText;
рдЕрдм рд╣рдо рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдЧреЗрдо рдХреНрд▓рд╛рд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
static void Main(string[] args) { try { Program.game = new InjectedMain(); } catch { Console.WriteLine("fail, sorry :("); Console.ReadKey(); return; } Program.game.Run(); }
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдХреБрдЫ
рдбреНрд░рд╛ рдХрд░реЗрдВ, рд╣рдорд╛рд░реЗ рдкреБрдирдГ рдкрд░рд┐рднрд╛рд╖рд┐рдд
рдбреНрд░рд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied); spriteBatch.DrawString(font, "Hello habrahabr!", new Vector2(5f, 5f), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); spriteBatch.End();
рдкрд░рд┐рдгрд╛рдо:

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдЦрдЬрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЫрд╛рддреА рдХрд╣рд╛рдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрд░реНрдХ рддрдХ рд╕рднреА рдкрд╣реБрдВрдЪ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдХреБрдЫ рд╢рд╛рдирджрд╛рд░, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИрдХрд┐рдВрдЧ рдХрд░реЗрдВрдЧреЗред
рдЯреЗрд░рд╛рд░рд┐рдпрдо рдкреНрд▓реЗрдпрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рднреВрдд , рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ
рдХреИрд╕реНрдкрд░ рдХрд╛рд╕реНрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд┐рдк)ред рддреЛ рдЪрд▓рд┐рдП рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрдм рдЖрдк
Left Shift рджрдмрд╛рдПрдВ рдФрд░ рджрдмрд╛рдП рд░рдЦреЗрдВ - рдЦрд┐рд▓рд╛рдбрд╝реА рдХреНрд░реЛрдзрд┐рдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕рдШрд╛рддреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо
рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ:
KeyboardState state = Keyboard.GetState(); Player local = Main.player[Main.myPlayer];
рд╣рдо рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХрд▓рд╛рдХрд╛рд░ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рдкрд╛рда рдФрд░ рдЕрдиреНрдп рд╡рд░реАрдпрддрд╛рдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ - рдпрд╣ рдорд╛рдорд▓рд╛ рдХреЗрд╡рд▓ рдпрд╣реАрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЧреЗрдо рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдХреБрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдХрд╣рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЗрди рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд░реЛрдХрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрди рд╣реИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдЦреЗрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рдореИрдВ
рдкреНрд▓реЗрдпрд░ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрд╣рд╛рдВ рдПрдХ рд╕реЗрд╡ / рд▓реЛрдб рдлрдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╣реА рдХреНрд▓рд╛рд╕ рджреЗрддрд╛ рд╣реИред рдпрд╛рдиреА рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ
рдкреНрд▓реЗрдпрд░реНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛рдПрдВред
рдиреИрддрд┐рдХрддрд╛
рд╣рдореЗрд╢рд╛ рдЬрд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдЬреЛ рдХрдХреНрд╖рд╛рдПрдВ рдкрд░рд┐рдорд┐рдд рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ
рд╕реАрд▓ рдХрд░
рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрдирд╣реЗрд░рд┐рдЯ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕)
рд╡реНрдпрд╛рдореЛрд╣ рдирд┐рд╖реНрдард╛
рд╕реЗ рдПрдХ
рдЧреЛрд▓реА рдХреЗ рд▓рд┐рдП, рдЖрдк рднреА рдХреЛрдб рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рднреНрдп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рддрд░реНрдХ рдХреА рдЬрд╛рдВрдЪ рд╣реЛ рдФрд░ рдПрдХ рддреЗрдЬ рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рд╕рдордп рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рд╕реЗ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдкрд░ рддреБрд░рдВрдд рдХреИрд╕реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЕрдлрд╕реЛрд╕, рдЯреЗрд░рд╛рд░рд┐рдпрдо рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирддрд╛ рд╣реИред
рдпрд╣ рд▓реЗрдЦ рдХреЗрд╡рд▓ рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛: рд╕рд░рд▓ рд╕рдВрд╢реЛрдзрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ - рдЖрдк рдПрдХ рдордЬрдмреВрдд рд╣реИрдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рд╢, рдореИрдВ рд▓реЗрдЦ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдЬрд▓реНрдж рдорд┐рд▓рддреЗ рд╣реИрдВ!