рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдмрдзрд╛рдИ, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ!

рдЦреЗрд▓ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЧреЗрдо рд╡реНрд╣реАрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг, рджрдмрд╛рдП рдЧрдП рдмрдЯрдиред рдпрд╣ рдПрдХ рдЧреЗрдо рдирд╣реАрдВ рдерд╛ рдЬрд┐рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд .net рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдерд╛, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛ред рд╣рдо .net рдореЗрдВ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░


рдХрд╛рд░реНрдп рдЧреЗрдо рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЦреЗрд▓ рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЦреЗрд▓реЛрдВ рдореЗрдВред DirectX рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ DirectX рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ DirectInput рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

DirectInput - рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреАрдмреЛрд░реНрдб, рдорд╛рдЙрд╕, рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдЖрджрд┐ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (c) Wikipedia.org

рдкреНрд░рдпреБрдХреНрдд рдЦреЗрд▓ рдирд┐рдпрдВрддреНрд░рдХ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рдбрд┐рдлреЗрдВрдбрд░ рдлреЛрд░реНрд╕реЗрдЬ рдЬреАрдЯреАрдЖрд░ рдЧреЗрдо рд╡реНрд╣реАрд▓ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реЙрдЬрд┐рдЯреЗрдХ рд░рдВрдмрд▓рдкреИрдб 2 рдЧреЗрдо рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ ред

рдкреНрд░рдмрдВрдзрд┐рдд DirectX


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдкреНрд░рдмрдВрдзрд┐рдд рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рд╕рдорд░реНрдерди рд╣реИ, рдЕрд░реНрдерд╛рддред .net рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рд╕реЗред рдПрдордбреАрдПрдХреНрд╕ рдХреЛ рдиреМрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдПрд╕рдбреАрдХреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк MDX рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЯреЙрдо рдорд┐рд▓рд░ рдХреА рдкреБрд╕реНрддрдХ DirectX 9 рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред тАЭ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЯрди рдЬрд╛рдирдХрд╛рд░реА рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг


рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЬрд┐рдЯреЗрдХ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ (рд╡рд┐рдВрдбреЛрдЬ 7 рдЪрд▓ рд░рд╣рд╛ рд╣реИ)ред
рд╣рдо DirectX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ DirectX SDK рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рд╕рдм рдХреБрдЫ рдЖрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ .net рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рдПрдХ рдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ


рдЗрд╕рд▓рд┐рдП, рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪрд▓рд╛рдПрдВ, рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн -> рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ , рдмреНрд░рд╛рдЙрдЬрд╝ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ, рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб \ 1.0.2902.0 рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП \ Windows \ Microsoft.NET \ DirectX рдкрд░ рдЬрд╛рдПрдВ рдФрд░ Microsoft.DirectX.dll рдФрд░ Microsoft.DirectX.DirectX.putput.dll рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ , рдХреНрд░рдорд╢рдГ, рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛:

using Microsoft.DirectX; using Microsoft.DirectX.DirectInput; 

рдмреЗрд╢рдХ, рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВред рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ .net рдлреНрд░реЗрдорд╡рд░реНрдХ 4.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдПрдордбреАрдПрдХреНрд╕ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЪрд░рдг рдореЗрдВ рдмрд╕ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

1) .net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
2) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╣реА рдХрд░реЗрдВ, рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ app.config рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ:

 <?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/> </startup> </configuration> 

рдЕрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдЖрдк рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЦреЗрд▓ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдЬреБрдбрд╝реЗ рдЦреЗрд▓ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

 foreach (DeviceInstance instance in Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)) { //         , , : instance.ProductName } 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЧреЗрдорд┐рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ:

 Device device; foreach (DeviceInstance instance in Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)) { device = new Device(instance.ProductGuid); // Background - ,   ,           // NonExclusive -   ,         device.SetCooperativeLevel(null, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive); //    foreach (DeviceObjectInstance doi in device.Objects) { //      -  if ((doi.ObjectId & (int)DeviceObjectTypeFlags.Axis) != 0) { //        device.Properties.SetRange( ParameterHow.ById, doi.ObjectId, new InputRange(-90, 90)); } } //   device.Acquire(); } 

рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдг 180 рдбрд┐рдЧреНрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП InputRange I рдореЗрдВ 90 рдбрд┐рдЧреНрд░реА рдкрд░ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдХреЛрдг рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдпрд╛ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдЬреИрд╕реЗ рдХреАрдбрд╛рдЙрди \ рдХреА-рдпреВрдкреА рд╕реЗ рдХрд┐рд╕реА рднреА рдИрд╡реЗрдВрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдирд╣реАрдВ рд▓реЗ рдкрд╛рдПрдВрдЧреЗ , рдФрд░ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 //   DispatcherTimer timer = new DispatcherTimer(); timer.Tick += new EventHandler(timer_Tick); timer.Interval = new TimeSpan(0, 0, 0, 0, 10); timer.Start(); private void timer_Tick(object sender, EventArgs e) { //     JoystickState j = device.CurrentJoystickState; string info = ""; //     byte[] buttons = j.GetButtons(); for (int i = 0; i < buttons.Length; i++) { //         if (buttons[i] != 0) { info += "Button: " + i + " "; } } // jX        textBlock1.Text = j.ToString(); textBlock2.Text = info; } 

рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬреЙрдпрд╕реНрдЯрд┐рдХрд╕реНрдЯреЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЧреЗрдо рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреМрди рд╕реЗ рдлрд╝реАрд▓реНрдб рдмрджрд▓рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреЙрдпрд╕реНрдЯрд┐рдХ / рдкрд╣рд┐рдП рдЖрджрд┐ред DirectInput рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, рдЕрдм рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЦреЗрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧреЗрдо рдХреЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрдЯрди рдкрд░ "рд╣реИрдВрдЧ" рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреА рд╣реИред

рд╕рдВрджрд░реНрдн


1. рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ рдЬреВрди 2010 \ 572 рдПрдордмреА
2. рдЯреЙрдо рдорд┐рд▓рд░ - рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯреЗрдб 9
3. рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрд░реЛрдд

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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


All Articles