рд╕реНрдкрд▓реИрд╢! - рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7. рднрд╛рдЧ II рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ

рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ ( рднрд╛рдЧ I ) рдореЗрдВ, рд╣рдордиреЗ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдореБрджреНрджреЛрдВ, рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рдкрд╕рдВрдж рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЕрдм рд╣рдо рдлреЛрди рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред



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



рд╣рдо рдПрдХ рдЕрд▓рдЧ GameController рд╡рд░реНрдЧ рдореЗрдВ рд╕рднреА рдЦреЗрд▓ рддрд░реНрдХ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдЕрдм рдЦреЗрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); GameController.Update(gameTime); base.Update(gameTime); }
      
      





рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо GameController.Update рдХреЗ рд▓рд┐рдП рдЧреЗрдордЯрд╛рдЗрдо рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ ElapsedGameTime рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬреЛ рдпрд╣ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реА рдХреЙрд▓ рд╕реЗ рд▓реЗрдХрд░ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рддрдХ рдХрд┐рддрдирд╛ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдлреЛрди 33 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛, рдмрд▓реНрдХрд┐ рд╕рднреА рдЧрдгрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдЪрд░рд┐рдд рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред



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

 position += (float)(acceleration * gameTime.ElapsedGameTime.TotalSeconds);
      
      





рдЧреЗрдВрджреЛрдВ рдФрд░ рдзрдмреНрдмреЛрдВ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ (рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдордп) рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рдПрдЧреА:

 radius += (float)(GrowSpeed * gameTime.ElapsedGameTime.TotalSeconds);
      
      





рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдЗрди рд╕рднреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрд░реЗрдВрдЧреЗ - рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЕрдкрдирд╛ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдбреЗрдЯ (рдЧреЗрдордЯрд╛рдЗрдо) рд╣реЛрдЧрд╛ред рдФрд░ GameController.Update рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред



рдбреНрд░рд╛рдЗрдВрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕



рд╣рдо рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рдЧреЗрдордХрдВрдЯреНрд░реЛрд▓рд░ рд╡рд░реНрдЧ рдореЗрдВ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЦреЗрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдбреНрд░рд╛ рд╕рдорд╛рд░реЛрд╣ рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); spriteBatch.Begin(); GameController.Draw(spriteBatch); spriteBatch.End(); base.Draw(gameTime); }
      
      





рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо GameController.Draw рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯрдмрдЪ рдХреНрд▓рд╛рд╕ рдХрд╛ рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдЧреЗрдордЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЧрдгрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреА рдЧрдИ рд╣реИред



рдЗрд╕рдХреЗ рдмрд╛рдж, GameController.Draw рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рд╕рдорд╛рди рдбреНрд░рд╛ (рд╕реНрдкреНрд░рд╛рдЗрдЯрдмреИрдЪ) рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдПрдЧрд╛ред



рдбреНрд░рд╛рдЗрдВрдЧ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддреА рд╣реИ:

 spriteBatch.Draw(texture, position, color);
      
      



рдпрд╣реА рд╣реИ, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдХреЗрд╡рд▓ рд╕рдорд╛рдкреНрдд рдмрдирд╛рд╡рдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - XNA рдореЗрдВ 2D рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ (рд░реЗрдЦрд╛рдПрдБ, рдЖрдпрддрд╛рдХрд╛рд░, рджреАрд░реНрдШрд╡реГрддреНрдд, рдЖрджрд┐) рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред



рдмрдирд╛рд╡рдЯ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 Texture2D texture = Content.Load<Texture2D>(assetName);
      
      



рдмрдирд╛рд╡рдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд░реА рд╣реБрдИ рд╣реИ, рд╕рднреА рдкрджреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдЖрдк рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХреЗ рдореВрд▓ рд░рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ Color.White рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



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



рджреЛ рд░рдВрдЧреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Color.Lerp рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдФрд░ рдПрдХ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдкрдХреЛ Color.FromNonPremultiplied рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред



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



рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ



рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╕рд░рд▓ рд╣реИ:

 spriteBatch.DrawString(spriteFont, text, position, color);
      
      





SpriteFont рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рд▓реЛрдб рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 SpriteFont spriteFont = Content.Load<SpriteFont>(assetName);
      
      





рдпрд╣рд╛рдВ рдЖрдк рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рд░рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдк рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рда рдкрд╛рд░рднрд╛рд╕реА рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред



рдпрджрд┐ рдЖрдк рдПрдХ рдлреНрд▓реЛрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рда рдереЛрдбрд╝рд╛ рд╡рд┐рдХреГрдд рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ рдЬрд╣рд╛рдВ рдкрд╛рда рдХреА рдПрдХ рдЪрд┐рдХрдиреА рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



SpriteBatch.DrawString рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд╛рда рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд┐рд╕реА рднреА рд╣реЗрд░рдлреЗрд░ рд╕реЗ рдкрд╛рда рдХреА рд╡рд┐рдХреГрддрд┐ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ XNA рдореВрд▓ рд╡реЗрдХреНрдЯрд░ рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд┐рдЯрдореИрдк рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде, рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред



рдЯрдЪ рд╕реНрдХреНрд░реАрди



рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдкрдХреЛ Microsoft.Xna.Framework.Input.Touch.TouchPanel рд╡рд░реНрдЧ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 foreach (var item in TouchPanel.GetState()) { if (item.State == TouchLocationState.Pressed || item.State == TouchLocationState.Moved) { // Get item.Position } }
      
      





рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рд╕реЗ рд╕реНрдкрд░реНрд╢ рдХрд┐рдпрд╛ рдерд╛ред



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



рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдРрд╕реЗ рдЗрд╢рд╛рд░реЛрдВ (рдЯреИрдк) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 TouchPanel.EnabledGestures = GestureType.Tap;
      
      





рддрдм рд╣рдо рдЧреЗрдо рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЗрд╢рд╛рд░реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 while (TouchPanel.IsGestureAvailable) { GestureSample gesture = TouchPanel.ReadGesture(); if (gesture.GestureType == GestureType.Tap) { // Get guesture.Position } }
      
      





accelerometer



рдлреЛрди рдХреЗ рдЭреБрдХрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Microsoft.Devices.Sensors.Accelerometer рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдЯрдЪрдкреИрдирд▓ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛) - рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╡реЗрдВрдЯ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдИрд╡реЗрдВрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ:

 accelerometer = new Microsoft.Devices.Sensors.Accelerometer(); accelerometer.ReadingChanged += AccelerometerChanged; accelerometer.Start();
      
      





рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рддреНрд╡рд░рдг рдХреЗ рдореВрд▓реНрдп рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВрдЧреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдЪрд╛рдПрдВрдЧреЗ:

 private void AccelerometerChanged(object sender, AccelerometerReadingEventArgs e) { vector = new Vector3((float)eX, (float)eY, (float)eZ); }
      
      





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

 public Vector2 Acceleration { get { return new Vector2(vector.X, -vector.Y); } }
      
      





рдпрд╣ рд╡рд╣ рддреЗрдЬреА рд╣реИ рдЬреЛ рд╣рдо рдЕрдкрдиреА рд╕рдлреЗрдж рдЧреЗрдВрдж рдХреЛ рджреЗрдВрдЧреЗред



рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдХреЗ рдЕрдХреНрд╖реЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред



рдЖрд╡рд╛рдЬ рдмрдЬрд╛рдУ



XNA рдореЗрдВ рд╕рд╛рдЙрдВрдб рдмрдЬрд╛рдирд╛ рдХреНрд▓рд╛рд╕ рд╕рд╛рдЙрдВрдбрдлреЗрдХреНрдЯ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд▓реЗ рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

 SoundEffect sound = Content.Load<SoundEffect>(assetName);
      
      





рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм - рд╣рдореЗрдВ рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ



рдЕрдВрдд рдореЗрдВ, рдЦреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╕рдлреЗрдж рдЧреЗрдВрдж рдХреЛ рдПрдХреНрд╕реАрд▓рд░реЛрдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╛рдХреА рдЗрд╕рдХреЗ рдмрд╛рдж рдкреАрдЫрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдЖрдк рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рд╕реЗ рдЙрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдВрдХ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрд╡рд╛рдЬрд╝реЗрдВ рд╣реЛрддреА рд╣реИрдВред рд▓рдЧрддрд╛ рд╣реИ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ? рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛!



рдЕрдм рдЖрдкрдХреЛ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдкреНрд░рд╛рд░рдВрдн рд╡рд┐рдВрдбреЛ (рдореБрдЦреНрдп рдореЗрдиреВ), рдард╣рд░рд╛рд╡ рд╕рдВрд╡рд╛рдж рдФрд░ рдЧреЗрдо рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЦрд┐рдбрд╝рдХреА (рд╕реНрдХреЛрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде)ред



рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП XNA рдореЗрдВ рдХреЛрдИ рд╡рд┐рдВрдбреЛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЙрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред



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



рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╕рд╛рдиреА рд╕реЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рддрддреНрд╡реЛрдВ рдХреЛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред



рд░рд╛рдЬреНрдп рд╕рдВрд░рдХреНрд╖рдг



рдлреЛрди рдкрд░ рдЧреЗрдо рдХрд┐рд╕реА рднреА рд╕рдордп рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣реЛрдо рдмрдЯрди рджрдмрд╛рдХрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд╛рд╣рд░реА рдШрдЯрдирд╛ рд╕реЗред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЦреЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рд░рд╛рдЬреНрдп (рдФрд░ рдПрдХ рд╣реА рд╕рдордп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд░реНрдЧ IDEDIA <string, object> interface рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЬреЛрдбрд╝реЗрдВ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ) рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдФрд░ IsolatedStorageSettings.ApplicationSettings.Save () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред



рд╣рдо рдЖрд╡реЗрджрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд╕рдордп рдХреЛ рдмрдЪрд╛рдПрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧреЗрдо рдХреНрд▓рд╛рд╕ рдореЗрдВ рдСрдирдПрдХреНрд╕рд┐рдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВрдЧреЗ:

 protected override void OnExiting(object sender, EventArgs args) { GameController.SaveState(); base.OnExiting(sender, args); }
      
      





рд░рд╛рдЬреНрдп рдХреА рдмрд╣рд╛рд▓реА рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рд╣рдо IsolatedStorageSettings.ApplicationSettings рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ



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



рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧреЗрдо рдХреНрд▓рд╛рд╕ рдореЗрдВ OnActivated рдФрд░ OnDeactivated рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВрдЧреЗред



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



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдлреЛрди рдХреЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 if (!IsActive) { SuppressDraw(); return; }
      
      





рд╕реНрдкрд▓реИрд╢ рд╕реНрдХреНрд░реАрди



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





рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ SplashScreenImage.jpg рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ - рдФрд░ рдпрд╣ рд╕реНрд╡рддрдГ рд╣реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ XNA рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



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



рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓реЙрдиреНрдЪ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред



рдлреЛрди рдкрд░ рдЦреЗрд▓ рдХрд╛ рд╕реНрдерд╛рди



рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдлреЛрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрдк рдлреЛрди рдХреА рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ XBOX LIVE рдХрд╣рддреЗ рд╣реИрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ), рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ WMAppManifest.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ, рд▓рд╛рдЗрди Genre = "Apps.Normal" рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ Genre = "Apps.Games" рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред



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



рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ рдЪрд┐рддреНрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: GameThumbnail.png рдФрд░ Background.pngред



рдЦреЗрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЧреЗрдо рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рддрд╕реНрд╡реАрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ - рдлреЛрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реНрдХреНрд░реАрди рдкрд░ред рджреЛрдиреЛрдВ рдЪрд┐рддреНрд░ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: 173x173 рдкрд┐рдХреНрд╕реЗрд▓ред



рдкрд░реАрдХреНрд╖рдг рдореЛрдб



рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░реАрдХреНрд╖рдг рд╕рддреНрдпрд╛рдкрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Microsoft.Phone.Marketplace.icenseInformation рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 var license = new Microsoft.Phone.Marketplace.LicenseInformation(); return license.IsTrial();
      
      





рдЪреВрдВрдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЧреЗрдо рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдЗрд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рддрднреА рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдХреНрд░рд┐рдп рд╣реЛ - рдЧреЗрдо рдХреНрд▓рд╛рд╕ рдХреЗ рдСрдирдПрдХреНрдЯрд┐рд╡реЗрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред



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



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

 var market = new Microsoft.Phone.Tasks.MarketplaceDetailTask(); market.Show();
      
      





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



рдмреИрдХ рдмрдЯрди



рдЕрдВрдд рдореЗрдВ, рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдкрд░ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ Microsoft рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдмрд╛рдж рдПрдХ рдлреИрд╕рд▓рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?



рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрджреНрдпрддрди рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдХреЛрдб рдореЗрдВ рдирд┐рдХрд▓рд╛:

 protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); ... }
      
      





рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмреИрдХ рдмрдЯрди рд╣рд░ рдЬрдЧрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реМрдЯрд╛рдПрдВред рдФрд░ рдЙрд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рд╕реНрдХреНрд░реАрди рдкрд░ рд╣реЛ (рдЧреЗрдо рдХреЗ рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ)ред рдЕрдЧрд░ рд╣рдо рдкреЙрдЬ рдбрд╛рдпрд▓реЙрдЧ рдореЗрдВ рд╣реИрдВ, рддреЛ рдмреИрдХ рдмрдЯрди рд╣рдореЗрдВ рдЧреЗрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рд▓реЗрдХрд┐рди рдмреИрдХ рдмрдЯрди рд╣рдореЗрд╢рд╛ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдмреИрдХ рдмрдЯрди рдХреА рд╕рд╣реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рд░-рдмрд╛рд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред



рдкрд░рд┐рдгрд╛рдо



рдФрд░ рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛! рдЕрдм рдпрд╣ рдЧреЗрдо рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдореЗрдВ рд╣реИред



рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд▓рдЧрднрдЧ рджреЛ рд╕рдкреНрддрд╛рд╣ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП (рдФрд░ рдПрдХ рдФрд░ рджреЛ рд╕рдкреНрддрд╛рд╣ рдЦреЗрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдореЗрдВ рд░рдЦрдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП)ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ рд░реЛрдорд╛рдВрдЪрдХ рдЦреЗрд▓ рд╣реИ:







рдмреЗрд╕реНрдЯ WP7 рдЧреЗрдореНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рдВрдкрд╛рджрдХреЛрдВ рдиреЗ рдЗрд╕ рдЧреЗрдо рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА: www.bestwp7games.com/splash-fun-accelerometer-game-for-wp7-review.html







рдФрд░ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдПрдХ рд╣рдлреНрддреЗ рдмрд╛рдж, рдЧреЗрдо рдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдореЗрдВ рд╢реАрд░реНрд╖ 100 рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдЧреЗрдо рдХреЛ рдорд╛рд░рд╛ред



рдЖрдк рдпрд╣рд╛рдВ рдЧреЗрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕ рдЦреЗрд▓ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдХреНрдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдмрдирд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ!



All Articles