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

рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдПрдиреАрдореЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред рдЖрдк рдмреНрд▓реЗрдВрдб рдореЗрдВ рдЧреБрдг рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рдЖрдк рдЪрд╛рдмрд┐рдпрд╛рдБ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдордмреЛрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдП рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд░рд╛рдЬреНрдп рдП рд╕реЗ рд░рд╛рдЬреНрдп рдмреА рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдиреАрдореЗрд╢рди, рдмреАрдЪ рдореЗрдВ рдмрд┐рдирд╛ рдШрдЯрдирд╛ рдХреЗ рднреА рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЬрдЯрд┐рд▓ рдПрдиреАрдореЗрд╢рди (рднреМрддрд┐рдХреА, рдЯрдХреНрдХрд░ рдХреА рдЧрдгрдирд╛, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдиреАрдореЗрд╢рди рд╡рдХреНрд░ рдХреЛ рдмрджрд▓рдирд╛) рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ
рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдЯрд╛рдЗрдорд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдиреАрдореЗрд╢рди рддрд░реНрдХ рдХреЛ рдкреБрди: рд▓рд┐рдЦреЗрдВред
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ, рдпреЗ рдЯрд╛рдЗрдорд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- System.Windows.Threading.DispatcherTime r - UI рдереНрд░реЗрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
- System.Threading.Timer - рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдПрдиреАрдореЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╡реИрд╢реНрд╡рд┐рдХ
рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ, рд╕реНрдЯреЗрдЯрд┐рдХ рдХреНрд▓рд╛рд╕
рд╕рд┐рд╕реНрдЯрдо ред
Windows.edia.CompositionTarget рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирдореВрдирд╛ рдХреЛрдб, рдПрдХ рд╕рд░рд▓ рдЧреЗрдо рд▓реВрдк:
рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪрд░ рдореЗрдВ рдЕрдВрддрд┐рдо
рд░рд┐рдбреНрд░рд╛рд╡рд▓ рдХреЗ рдмрд╛рдж рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝реНрд░реЗрдо рдХреЗ рдмреАрдЪ рддреЗрдЬ рдЭрдЯрдХреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рд╕рдордп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЧреБрдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ 60 рдХреЗ рдмрд░рд╛рдмрд░ рдПрдлрдкреАрдПрд╕ (рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдлреНрд░реЗрдо рджрд░) рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд░ рдлреНрд░реЗрдо 16 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд╣ рд╕рдм, рдЬреЛ рдмрдЪрд╛ рд╣реБрдЖ рд╣реИ, рд╡рд╣ рд╣реИ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдирд┐рдореЗрдЯреЗрдб рддрд░реНрдХ рд▓рд┐рдЦрдирд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕реНрд╡рдпрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдгреЛрдВ рдХреЛ рднрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдмрд╛рдХреА рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдЬреАрд╡рд┐рдд рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ "рдЧреЗрдо", рдПрдХ рдорд╢реАрди рдмрдирд╛рдПрдВред рдХреАрдмреЛрд░реНрдб рдкрд░ рд▓рдЧреЗ рддреАрд░ рдХрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдлреНрдЯ, рд░рд╛рдЗрдЯ, рдЧреИрд╕, рд░рд┐рд╡рд░реНрд╕ / рдмреНрд░реЗрдХ, рд╕рдм рдХреБрдЫ рд╣рд░ рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд╣реИред
рдПрдХ рдирдпрд╛ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред "MainPage.xaml" рдЦреЛрд▓реЗрдВред рдореБрдЦреНрдп рдЧреНрд░рд┐рдб рдореЗрдВ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "LayoutRoot" рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
<Grid Margin="12" Background="#FF084E0F"/> <Viewbox IsHitTestVisible="False" Margin="12"> <TextBlock TextWrapping="Wrap" Text=" " Foreground="#FF00228D" RenderTransformOrigin="0.5,0.5" Margin="10,0" Width="129" Height="16"> <TextBlock.RenderTransform> <CompositeTransform Rotation="-35"/> </TextBlock.RenderTransform> </TextBlock> </Viewbox> <Canvas x:Name="ContentPanel" Margin="12"> <TextBlock x:Name="tbInfo" Text="TextBlock" Foreground="White" FontSize="16" /> <Image x:Name="car" Width="70" Source="car.png" Height="35" /> </Canvas>
рдЖрдк рдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "car.png" рддреБрдореНрд╣рд╛рд░рд╛ рдпрд╛ рдпрд╣:

рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░ рдХреА рдирд╛рдХ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрддреА рд╣реИред
рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЖрдХрд╛рд░ рджреЗрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБред
рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдПрдирд┐рдореЗрдЯреЗрдб рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдПрдирд┐рдореЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:
- рдСрдЯреЛ рдореЗрдВ рд╕реЗрдЯ рдЪреМрдбрд╝рд╛рдИ рдпрд╛ рдКрдВрдЪрд╛рдИ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде, рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ рд░реЛрдЯреЗрд╢рди рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдирд┐рд░рдкреЗрдХреНрд╖ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЖрдпрд╛рдоред
- рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрдХреНрдЪреБрдЕрд▓рд╡рд┐рджрде рдФрд░ рдПрдХреНрдЪреБрдЕрд▓рд╣рд╛рдЗрдЯ рд╢реВрдиреНрдп рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд╕реНрддреБ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЦреАрдВрдЪреА рдЧрдИ рд╣реИред рдЕрдкрдиреА рдЧрдгрдирд╛ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдмрдирд╛рдИред рддрд░реНрдХ рдЬреЛрдбрд╝реЗрдВред
рдХреАрд╕реНрдЯреНрд░реЛрдХ рд╣реИрдВрдбрд▓рд┐рдВрдЧ
рдЪрд╛рдмрд┐рдпрд╛рдБ рдЗрддрдиреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдХ рд╕рд╛рде рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рд╕рдВрд╢реЛрдзрдХ рдХреА рдЧрд┐рдирддреА: Ctrl, Shift, Altред рдХреАрдбрд╛рдЙрди рдЗрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧреИрд╕ рдирд┐рдЪреЛрдбрд╝ рд▓реА, рдФрд░ рдЧреИрд╕ рдХрд░рддреЗ рд╕рдордп, рдмрд╛рдПрдВ рдореБрдбрд╝реЗрдВ рдирд╣реАрдВред рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, Ctrl / Shift рдФрд░ рдЧреИрд╕ рдХреЛ рджреЛрдиреЛрдВ рд╣рд╛рдереЛрдВ рд╕реЗ рджрдмрд╛рдПрдВред рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ ...
рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫрд╛ рднреА рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ (
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ ), рдПрдХ рд╡рд░реНрдЧ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдкрдХреЛ рдЧреЗрдо рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХреАрдбрд╛рдЙрди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрджрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ:
рдПрдиреАрдореЗрд╢рди
рдирд┐рдореНрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ MainPage.xaml.cs рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
рд╣рдо
RenderTransform рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░ рдХрд╛ рдПрдиреАрдореЗрд╢рди рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдШреВрдордиреЗ, рдШреВрдордиреЗ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рд░реВрдкрд╛рдВрддрд░ рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ Canvas.Top рдФрд░ Canvas.Left рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ (рд╣рдорд╛рд░реА рдХрд╛рд░) рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИрдВ ред
рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рднрд░реЗрдВ:
public MainPage(){ InitializeComponent(); this.Loaded += MainPage_Loaded;
рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлрдВрдХреНрд╢рди, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдорд╢реАрди рдорд╛рдЙрд╕ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рддреА рд╣реИ:
рдЬрдм рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреНрд▓рдЧрдЗрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝реЗрдЧрд╛ред рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдлрд╝реЛрдХрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдмрд╕ рд╣рдорд╛рд░реЗ рдЦрд┐рд▓реМрдиреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦреЗрд▓ рдЪрдХреНрд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВред
private void MainPage_Loaded(object sender, RoutedEventArgs e){
рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдиреАрдореЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
рдХрд╛рд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рджреНрд╡рд╛рд░рд╛ред рд╣рдо рдореВрд▓ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджрд┐рд╢рд╛ рд╡реЗрдХреНрдЯрд░ (рдпреВрдирд┐рдЯ рд╡реЗрдХреНрдЯрд░) рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ, рдЧрддрд┐ рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рд╕реНрдерд╛рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрд╕реА рд╕рдордп, рдкрд░рд┐рдгрд╛рдореА рдХреЛрдг рдорд╢реАрди рдХреЗ рд░реЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдг рд╣реЛрдЧрд╛ред

рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд╣рдо рдХрд╛рд░ рдХреЛ рдореЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдЖрдпрдд рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╛рд░ рдХреЗ рдореЛрдбрд╝ рдХреЗ рдХреЛрдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

рдпрд╣ рдЦреЗрд▓ рдХреЗ рджрд┐рд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЦреЗрд▓ рдЪрдХреНрд░ рдХреЗ рдХрд╛рд░реНрдп:
private void _gameLoopUpdate(object sender, EventArgs e){ int currentTime = Environment.TickCount; int frameTime = currentTime - _lastTime; _lastTime = currentTime;
рд▓реВрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдирд┐рдореНрди рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:
- рдорд╢реАрди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗрдЯ рдХрд░реЗрдВ
- рд▓рдЧрд╛рддрд╛рд░ рдЧрддрд┐ рдХреЛ 0 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ, рдпрд╣ рддреНрд╡рд░рдг рдПрдиреАрдореЗрд╢рди рдХреЛ рдЗрддрдирд╛ рд░реИрдЦрд┐рдХ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ
- рдЪреЗрдХ рдХрд░реЗрдВ рдХрд┐ рдХрд╛рд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реА рдпрд╛ рдирд╣реАрдВ
- рд╣рдо рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд┐рдЫрд▓реЗ рдлреНрд░реЗрдо (
рдбреЗрд▓реНрдЯрд╛ ) рд╕реЗ рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЧрддрд┐ рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░ рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд░реЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдг рдмрдврд╝рддрд╛ рд╣реИред
рдпрд╣ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЦреЗрд▓ рдЪрдХреНрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рдЕрдЧрд░ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЧрддрд┐ рдФрд░ рдХреЛрдг рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП KeyDown рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдХрд╛рд░ рдбреНрд░рд╛рдЗрд╡, рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рддреНрд╡рд░рдг рдФрд░ рдШреБрдорд╛рд╡реЛрдВ рдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдбрд╝рдХ рдкрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмреВрдврд╝реА рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХрд┐рдбрд┐рдВрдЧ, рдорд┐рд╕рдХрд▓реНрдХреБрд▓реЗрдЯрд┐рдВрдЧ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкреНрд░рднрд╛рд╡ ... рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдЬрдЯрд┐рд▓ рдПрдиреАрдореЗрд╢рди, рдЧреЗрдо рд▓реВрдк рдореЗрдВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдЦреЗрд▓ рдЪрдХреНрд░ рдХреЗ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдлрд╛рдпрджреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдордп рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрд╛рд░рдХ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдиреАрдореЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреЛрдИ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕реА рдирд╣реАрдВ рд╣реИ (
рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде
рдПрдХ рдкреВрд░реА рдкрд░реЗрд╢рд╛рдиреА рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдереЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╣рдо рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмреНрд▓реЗрдВрдб рдореЗрдВ рдмрдЯрди рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡ рд╣реИ)ред рдиреАрдЪреЗ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ, рдПрдХ рднреМрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдХрд░рддрд╛ рд╣реИ: рдмреНрд▓реЗрдВрдб рдореЗрдВ, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рднреМрддрд┐рдХреА рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
"рдПрдХ рдмреЙрдХреНрд╕ рдореЗрдВ рдХрд╛рд░реЛрдВ" рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб
рдпрд╣рд╛рдВ рдпрд╛
рдЙрджрд╛рд╣рд░рдг рдкреГрд╖реНрда рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрд╕рд╛рдзрди:
- рдлрд┐рдЬрд┐рдХреНрд╕ рд╣реЗрд▓реНрдкрд░ рдлреЙрд░ рдмреНрд▓реЗрдВрдб, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ, рдбрдмреНрд▓реНрдпреВрдкреА 7 рдФрд░ рдлрд░рд╕реЗрд░ - рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд░реИрдкрд░ рдлрд╛рд░рд╕реАрд░ рдлрд┐рдЬрд┐рдХреНрд╕ рдЗрдВрдЬрди рдлрд┐рдЬрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (http://farseerphysics.codeplex.com/) рдкрд░ред рдпрд╣ рдЙрд╕рдХреЗ рдХреЛрдб рдореЗрдВ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЬрдЯрд┐рд▓ рдПрдиреАрдореЗрд╢рди рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдХрд╕реНрдЯрдо рдПрдирд┐рдореЗрд╢рди - рдПрдХ рдкреЗрдВрдбреБрд▓рдо рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреЗрдо рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд▓реЗрдЦ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИред