
рд╕рднреА рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдЦреЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╕рд┐рд░реНрдл рдЕрдЪреНрдЫреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдЖрдЬ, рдореИрдВ рдЖрдкрдХреЛ рдЕрджреНрднреБрдд XNA рдлреНрд░реЗрдорд╡рд░реНрдХ (рдбреЙрдЯрдиреЗрдЯ рд░рдирдЯрд╛рдЗрдо рд░рдирдЯрд╛рдЗрдо рдЯреВрд▓рдХрд┐рдЯ) рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рдо C # рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░реЗрдВрдЧреЗред
рдЖрдкрдХреЛ XNA рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рд╕рд░рд▓ "рд╕рдВрдЧреАрдд" 2 рдбреА рдЦрд┐рд▓реМрдирд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рдмрд╛рдХреА рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рд╣реИред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
Microsoft XNA (рдЕрдВрдЧреНрд░реЗрдЬрд╝реА
XNA's Noteded ) - Microsoft рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рд░рдирдЯрд╛рдЗрдо (.NET) рдХреЗ рд╕рд╛рде рдЯреВрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред XNA "рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП" рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?
1) рдлреНрд░реЗрд╢ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ (
рдЙрджрд╛ред рдЬреВрди 2010 )
2) рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реА # 2010 рдПрдХреНрд╕рдкреНрд░реЗрд╕ (
рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ )
3)
Microsoft XNA рдЧреЗрдо рд╕реНрдЯреВрдбрд┐рдпреЛ 4.0рдЗрд╕ рдкрд╛рда рдореЗрдВ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдФрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?
- XNA рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
- рдПрдХ рд░рд┐рдХреНрдд рдкреГрд╖реНрдарднреВрдорд┐ рдкреЗрдВрдЯрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ
- рд╕рд╛рдордЧреНрд░реА рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╕реАрдЦреЗрдВ
- рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦреЗрдВред
- рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦреЗрдВ
рд╣рдо рдХрд┐рд╕ рдЦреЗрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ?
рдЦреЗрд▓ рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдкрд╛рдЧрд▓рдкрди рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИрдВред рдЕрд░реНрде рд╕рдВрдЧреАрдд рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдЦреЗрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдЗрдЬреИрдХ рд╢реЗрдкрд░реНрдб - рд▓реАрд╡реНрд╕ рдЗрди рдж рд╡рд┐рдВрдб рдХреА рд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде "рдиреЛрдЯреНрд╕" рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреА рдЧрддрд┐ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдЧреАрдд рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреА, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЦреЗрд▓ "рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░" рдмреЛрд▓ рд░рд╣реА рд╣реИред рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП, 5 рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдЯ рд╣реИрдВ:
рдирд┐рдпрдорд┐рдд ,
рд▓рд╛рд▓ (рджреБрд╢реНрдорди),
рдмреИрдВрдЧрдиреА (рд╢рдХреНрддрд┐),
рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ (рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ),
рдкреАрд▓рд╛ (рд╕реНрдХреЛрд░рд┐рдВрдЧ рдФрд░ рдЖрдХрд╛рд░ рдХреА рдЧрддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ)ред
рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд░рдЦреЗрдВ, рдлрд┐рд░ Microsoft Visual C # 2010 EXPRESS рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдПрдХ Windows рдЧреЗрдо (4.0) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ music_catch рдХрд╣реЗрдВ:
рдПрдХ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА "рд╕реНрдХреНрд░реАрди" рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рдЪрд▓реЛ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
Music_catch рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ "рд▓реЙрдЬрд┐рдХ" рд╣реИред
Game1.cs - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рд╡рд░реНрдЧ, рдпрд╣
Microsoft.Xna.Framework.Game рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ
Program.cs рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ "рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ" рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред
Music_catchContent рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА "рд╕рд╛рдордЧреНрд░реА" рд╣реИ, рд╣рдо рд╡рд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрди
рдбрд╛рд▓реЗрдВрдЧреЗ ред
Game1.cs рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░
рдбрд╛рд▓реЗрдВрдЗрд╕рдореЗрдВ, рдЖрдк рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
рдЧреЗрдо 1 () рдХреНрд▓рд╛рд╕ рдХрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ () - рдЖрд╡реЗрджрди рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдгред
рд▓реЛрдбрдХрдВрдЯреЗрдВрдЯ () - рд▓реЛрдбрд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реАред
рдЕрдирд▓реЛрдб () - рд╕рд╛рдордЧреНрд░реА
рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ ред
рдЕрдкрдбреЗрдЯ (рдЧреЗрдордЯрд╛рдЗрдо рдЧреЗрдордЯрд╛рдЗрдо) - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ (рдЬреИрд╕реЗ рднреМрддрд┐рдХреА, рдЖрджрд┐) рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдбреНрд░рд╛ (рдЧреЗрдордЯрд╛рдЗрдо рдЧреЗрдордЯрд╛рдЗрдо) - рдЧреЗрдо рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрдиред рдзреНрдпрд╛рди рджреЗрдВ, рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЛ рдпрд╣рд╛рдВ рдФрд░ рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ Music_catch \ Music_catchContent рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлреЗрдВрдХ рджреЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╛рдВрдЪ рдкреАрдПрдирдЬреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдПрдХ рд╕рдВрдЧреАрддрдордп рд╕рдВрдЧрддред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдпрд╣ рд╕рдм рдЬреЛрдбрд╝реЗрдВ:
рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣рдо рдПрдХ рдлреЙрдиреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕реНрдкреНрд░рд╛рдЗрдЯрдлреЛрдВрдЯ 1. рдПрд╕рдкреНрд░рд┐рдЯрдлреЛрдВрдЯ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╣рдо рдирд╛рдо рдФрд░ рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
<FontName>Segoe UI Mono</FontName> <Size>14</Size>
рднрд╡рд┐рд╖реНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЪрд░ рдмрдирд╛рдПрдВ:
private List<Texture2D> MelList; private Texture2D mouse; private Song song; private SpriteFont font;
рдФрд░ рдЗрд╕реЗ рд▓реЛрдбрдХрдВрдЯреЗрдВрдЯ () рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ:
MelList = new List<Texture2D>(); for(int a = 1; a <= 5; a++) MelList.Add(Content.Load<Texture2D>("mel" + a)); mouse = Content.Load<Texture2D>("mouse"); song = Content.Load<Song>("Leaves_in_the_Wind"); font = Content.Load<SpriteFont>("SpriteFont1");
рд╡реИрд╕реЗ, рд╕рд╛рдордЧреНрд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рднрд░реА рд╣реБрдИ рд╣реИ: рд╕рд╛рдордЧреНрд░реАред рд▓реЛрдб <> ("рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐") рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
рд╕рд╛рдордЧреНрд░реА рдкреНрд░реЛрд╕реЗрд╕рд░ рддреНрд░рд┐рдХреЛрдгреАрдп рдХреЛрд╖реНрдардХ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ Texture2D, Song, SpriteFont рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рд╕рд╛рдордЧреНрд░реА рднрд░реА рд╣реБрдИ рд╣реИ, Game1 рдкрд░ рдЬрд╛рдПрдВ () рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рд▓рд┐рдЦреЗрдВ:
graphics = new GraphicsDeviceManager(this); graphics.PreferredBackBufferWidth = 800;
рдЖрд╡реЗрджрди рдЖрд░рдВрднреАрдХреГрдд рд╣реИред
рд╣рдо "рдЦреЗрд▓ рддрд░реНрдХ" рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рдЕрдм рд╣рдореЗрдВ рдХрдг рдкреНрд░рдгрд╛рд▓реА рдФрд░ рд╕реНрд╡рдпрдВ рдХрдг (рдиреЛрдЯреНрд╕) рдХрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ: рдХреИрдЪрд░ (рд╕реНрд╡рдпрдВ рдХрдг) рдФрд░ рдХреИрдЪрд░рд╣реЙрд▓реНрдбрд░ (рдХрдг рдкреНрд░рдгрд╛рд▓реА)ред
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝рдиреЗ рдХреА рд╕реВрдЪреА:
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace MusicCatch { public class Catcher { public Texture2D Texture { get; set; }
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрдЪрдлрд╝реЛрд░реНрдб рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ:
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace MusicCatch { class CatcherHolder { private Random random;
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд▓рдЧрд╛рддрд╛рд░:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MusicCatch { public class Constanst { public const float BEAT_COST = .4f;
рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдПрдХ рд░рд╣рд╕реНрдпрдордпреА рдмреИрдЯрд░реА рдХреНрдпрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИред рдЪрд▓реЛ "рд╕рдВрдЧреАрдд" рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рд╕рдВрдЧреАрдд рд╕рдВрдХреЗрдд рдПрдХ рдСрдбрд┐рдпреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ - рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╕реНрдкреАрдХрд░ рд╕рдВрдЧреАрдд рдирд╣реАрдВ рд╕реБрдирддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдорд╕реНрддрд┐рд╖реНрдХ рджреНрд╡рд╛рд░рд╛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЖрд╡реГрддреНрддрд┐ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВред
рдмрддреНрддрдЦ, рд╡рд┐рдЪрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди рдХреЗ "рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ" рдХреЛ рд╕реБрдирдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рдирдбрд╛рдЯрд╛ред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, 128 рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ, рдЬреЛ 0f рд╕реЗ 1f рддрдХ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди: рд╕рд░рдгреА рдореЗрдВ рдореВрд▓реНрдп рд╕рдВрдЧреАрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд╕рднреА 128 рддрддреНрд╡реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рддрддреНрд╡ рдХрд╛ рдорд╛рди 0.6f рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдмреАрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╡реЗрд╡ (рд╕рд░рдгреА рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдирд╛ рд╣реБрдИ) рдкрд╛рд╕ рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЖрдк рдмреАрдЯ рдореЗрдВ рдПрдХ рдиреЛрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рддреАрди рдЕрдкрдбреЗрдЯ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдореВрд▓реНрдп> 0.6f рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100500 рдХрдг рд╣реЛрдВрдЧреЗред рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреИрдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╕рд░рд▓ рд╣реИ: рдмреАрдЯ рдХреЗ рджреМрд░рд╛рди, рдирд┐рд░рдВрддрд░ BEAT_COST рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрд╡ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдмреИрдЯрд░реА рд╕рд░рдгреА рдХреЗ рд╕реЗрд▓ рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди рд╕рднреА рдмреИрдЯрд░реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ ACCUMULATE_SPEED рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдмреАрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЬрд╛рдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╢рд░реНрдд рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ - рдмреИрдЯрд░реА рдорд╛рди> ACCOMULATOR_REACTION, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдмреАрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд╡реИрд╕реЗ, BEAT_REACTION рдПрдХ рдореВрд▓реНрдп рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдмреАрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд GameLogic (Game1) рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб, рд▓реЗрдХрд┐рди рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace MusicCatch { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private List<Texture2D> MelList; private Texture2D mouse; private CatcherHolder m_cHolder; MediaLibrary mediaLibrary;
рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдЦрд┐рд▓реМрдирд╛ рд╣реИред
XNA 4.0 рдФрд░
.NET рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдВрддрд┐рдо рдорд╢реАрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
рд▓рд┐рдВрдХ:
рдЦреЗрд▓ рд╣реА (
рдкреНрд░рддреНрдпрдХреНрд╖ ) |
рд╕реНрд░реЛрдд рдХреЛрдб (
рдкреНрд░рддреНрдпрдХреНрд╖ ) |
XNA рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдВрдб-рдпреВрдЬрд╝рд░рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
PS рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдореЗрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЦреЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝реНрд▓реИрд╢ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдЦреЗрд▓ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛; рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛редPSS рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ XNA / рдкрд╛рда рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реВрдВрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдПрдХ рд╣рдмреНрд░ рдпрд╛ рдЙрди рд╕рдВрдкрд░реНрдХреЛрдВ рдкрд░ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВред