рдирдорд╕реНрдХрд╛рд░ рдкреНрд░рд┐рдп рдорд┐рддреНрд░ред
рдлрд┐рд░ рд╕реЗ, рдмрд╣реБрдд рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреА рд╣реИ
рдЦреЗрд▓реЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЖрдЬ рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ
WP7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдЕрджреНрднреБрдд
XNA рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬреЛ рдореИрдВрдиреЗ
рдпрд╣рд╛рдБ ,
рдпрд╣рд╛рдБ рдФрд░
рдпрд╣рд╛рдБ рдФрд░
рдпрд╣рд╛рдБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдк
рдмрд┐рдирд╛ рд░рдВрдЧреЛрдВ рдХреЗ рд╕реБрдВрджрд░ рдкреНрд░рднрд╛рд╡ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо
рд╡рд┐рдХреГрддрд┐ рдХреЗ
рдкреНрд░рднрд╛рд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдХреА рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд
рдкрд┐рдЫрд▓реЗ рджреЛ рд▓реЗрдЦ рдореИрдВрдиреЗ рдЫрд╛рдпрд╛рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗ рдФрд░ рдЖрдкрдХреЗ рдЦреЗрд▓ рдореЗрдВ рджреГрд╢реНрдп рдзрд╛рд░рдгрд╛ рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк
рд░реАрдЪ рдФрд░
рд╣рд╛рдИрдбрдл XNA рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рднрдпрднреАрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рджреЗрдЦреЗрдВ рдХрд┐
рд░реАрдЪ Shader рдореЛрдбрд▓ 2.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░
WP7 рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рд╕реЗ рдореИрдВ
рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдФрд░ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдм рдмрд┐рдирд╛ рд╢реЗрдб рдХреЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдореИрдкрд┐рдВрдЧ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рд╡рд┐рдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдХреЗ рд╕рд╛рде рд╢рд╛рдВрдд рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл
рдмреЗрд╕рд┐рдХрдлреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдкрд┐рдХреНрд╕рд▓ рдХреЛ рдХреИрд╕реЗ рдЭреБрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдкрд╛рдЧрд▓рдкрди рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рдж рдкреНрд░рднрд╛рд╡реА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ
рдХрд┐ рдореИрдВ рдХреМрди рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдХрд┐рд╕
рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ , рддреЛ рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдпрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо
рд╢реЗрдбреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдПрдХ рд╡рд┐рд░реВрдкрдг рдирдХреНрд╢рд╛ рдФрд░ рдПрдХ рд░рдВрдЧ рдирдХреНрд╢рд╛ рд╣реИред рд╡рд┐рд░реВрдкрдг рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рд░рдВрдЧ рдХреЗ рдирдХреНрд╢реЗ рдХреЛ рдореЛрдбрд╝рддреЗ рд╣реИрдВред рдмрд╕? рдЗрд╕реЗ рднреВрд▓ рдЬрд╛рдУред GPU рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛
WP7 рдХреЗ рддрд╣рдд рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд┐ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реИ (рдЬреЛ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ)ред
- рдХреНрдпрд╛ рдХрд░реЗрдВ, рд▓рдбрд╝рдХрд╛?рдпрд╛рдж рд░рдЦреЗрдВ, рдХрд┐рд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рд╣рдо 3 рдбреА рдореЗрдВ рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдкрд╛рдЯ рд╡рд░реНрдЧ? рдЗрд╕реЗ рджреЛ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реА рдорджрдж рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рддреНрд░рд┐рдХреЛрдг рдмрдирд╛рдПрдВ, рдФрд░ рдлрд┐рд░, рдмрдирд╛рд╡рдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рддреНрд░рд┐рдХреЛрдг рдХреЛ "рдХрд╛рдХрдмреЗ" рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╡рд┐рд░реВрдкрдг рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реИ - 480x800, рд╣рдо рдПрдХ 48x80 рдЧреНрд░рд┐рдб рдмрдирд╛рддреЗ рд╣реИрдВ (рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдПрдХ рд╕реБрдВрджрд░ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП - рдмрд╕ рд╕рд╣реА рд╣реИ)ред рдЧреНрд░рд┐рдб 3840 рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдЖрдпрд╛рдореА рдЖрдпрд╛рдо рд╣реИред рдпрд╣ рд╕рднреА WP7 рдкрд░
3-4 рдПрдордПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдХрдо рдореЗрд╖ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде -
1-2 рдПрдордПрд╕ ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЧреНрд░рд┐рдб рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рд╡рд┐рд░реВрдкрдг рдХреЗ рд╕рд╛рде рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ рдХрд┐ рддреНрд░рд┐рдХреЛрдг рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрдм рдЧреНрд░рд┐рдб 10 рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП - рд╕реНрдХреНрд░реАрди рдкрд░ рдХрджрдо 3 рдорд┐рдореА = 10 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИред рдЦреИрд░, рдареАрдХ рд╣реИ, рдХреБрдЫ рдореИрдВ рдПрдХ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдорд┐рд▓рд╛ред
- рдЕрд░реЗ рдпрд╛рд░, рдпрд╣реА рдХрд╛рдлреА рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛рдУредрдЕрднреНрдпрд╛рд╕
рдЖрджрд┐рдо рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
BasicEffect рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╕реНрдкреНрд░рд╛рдЗрдЯрдмреИрдЪ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рдЖрдВрдЦреЛрдВ рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ
рдмреЗрд╕рд┐рдХрдлреЗ рдХреЛ рдЫрд┐рдкрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рд╕рднреА рдЖрджрд┐рдо рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ
BasicEffect рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА
рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ ред
рд╕рдбрд╝рдХ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╕рд╛рдордЧреНрд░реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЭреБрдХреЗрдВрдЧреЗ, рд╣рдорд╛рд░реЗ рдкреНрдпрд╛рд░реЗ рджреЛрд╕реНрдд рд╕реЗ рдорд┐рд▓реЗрдВрдЧреЗ:

рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐
WP7 рдХреЗ рддрд╣рдд
XNA рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
30 рдПрдлрдкреАрдПрд╕ (рджреЗрд╢реА
60 рдкреАрдкреАрдПрд╕ рдХреЗ рдмрдЬрд╛рдп) рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рд╣реИ; рджреВрд╕рд░реА рдУрд░, рдЬреЛ рд╣рддреНрдпрд╛рд░реЗ рдХреА рдмреИрдЯрд░реА рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдПрдХ рд╕рдордп рд╣рддреНрдпрд╛рд░рд╛ рдирд╣реАрдВ рд╣реИ? рдЗрд╕рд▓рд┐рдП, рд╣рдо
30 рдПрдлрдкреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдк рдкрд╛рдПрдВрдЧреЗ:
рдПрдлрдкреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд▓рд╛рдЗрди - рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВред
рдЕрдЧрд▓рд╛ рдмрд┐рдВрджреБ рдПрдХ рдХреАрдмреЛрд░реНрдб рдХреА рдХрдореА рд╣реИ, рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдорд▓реНрдЯреАрдЯрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХрдорд╛рддреНрд░ рдмрдЯрди рдЬрд┐рд╕реЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдмреИрдХ рдмрдЯрди, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ - рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ:
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреВрдПрдВрдЧреЗ, рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрднреНрдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП - рдЕрд░реНрде
рдФрд░ рдкреНрдпрд╛рд░ рдХреЗ рд╕рд╛рде Game1 рднрд░реЗрдВред
рдЪрд░ рдмрдирд╛рдПрдВ:
Texture2D background; BasicEffect basicEffect;
рдкреГрд╖реНрдарднреВрдорд┐ - рд╣рдорд╛рд░реА рдмрдирд╛рд╡рдЯ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реЗрдВрдбрд░рдЯрд╛рд░реНрдЧред
BasicEffect рд╣рдорд╛рд░реЗ рдирд╛рдпрдХ рдХреЛ рдЖрджрд┐рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╣рдо рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:
background = Content.Load<Texture2D>("distortion");
рдореИрдВ рд▓рдЧрднрдЧ рднреВрд▓ рдЧрдпрд╛, рдЗрд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛:
graphics.PreferredBackBufferWidth = 480; graphics.PreferredBackBufferHeight = 800; graphics.IsFullScreen = true;
рддрд╛рдХрд┐ рд╡рд╣рд╛рдБ рдПрдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдерд╛ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред
рдмреЗрд╕рд┐рдХрд▓реАрдлреЗрдХреНрдЯ (рдЖрд░рдВрдн рдореЗрдВ) :
basicEffect = new BasicEffect(GraphicsDevice); basicEffect.TextureEnabled = true;
рдкреНрд░реЛрдЬреЗрдХреНрд╢рди - рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╡рд┐рдорд╛рди (рд╕реНрдХреНрд░реАрди) рдкрд░ рддреАрди рдЖрдпрд╛рдореА рд╡рд╕реНрддреБ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХреНрд╖реЗрдкрдгред
рджреГрд╢реНрдп - рдПрдХ
рджреГрд╢реНрдп рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕, рдПрдХ рдХреИрдорд░рд╛, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВред
рд╡рд┐рд╢реНрд╡ - рд╡рд┐рд╢реНрд╡ рдореИрдЯреНрд░рд┐рдХреНрд╕: рд░реЛрдЯреЗрд╢рди, рдЖрдХрд╛рд░, рд╕реНрдерд┐рддрд┐ред
рд╣рдо
рджреГрд╢реНрдп рдФрд░
рд╡рд┐рд╢реНрд╡ -рдЗрдХрд╛рдИ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░
рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рд╣рдо рдСрд░реНрдереЛрдЧреЛрдирд▓ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдЖрджрд┐рдо рдЕрдиреБрдорд╛рди рд╣реЛрдЧрд╛ред рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИ, рддреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд┐рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрджрд┐рдо рдХреЗ рдЫреЛрд░ред
рддреЛ, рдЕрдм рдХреЗ рд▓рд┐рдП,
Game1 рдХреЗ рд╕рд╛рде, рдЪрд▓реЛ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ
рдмрдирд╛рддреЗ рд╣реИрдВ GridVertexPositionColorTexture , рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕рдХреА рдкреВрд░реНрдг рд╕реВрдЪреА рд╣реИ (рдореИрдВ рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework; namespace GridDistortion { public class GridVertexPositionColorTexture { public VertexPositionColorTexture[] Vertices;
рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдкреНрд░рд╛рдердорд┐рдХ рдФрд░ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд░реНрдЧ рдЦреБрдж рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдЗрд╕ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдореЛрдбрд╝ рджреЗрдЧрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рджреЛ рдЧреНрд░рд┐рдб рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдмрддрд╛рдКрдВрдЧрд╛ :
рд╕рд┐рдВрдкрд▓рдЧреНрд░рд┐рдб ,
рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрдЧреНрд░рд┐рдб ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЧреНрд░рд┐рдб рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рджреВрд╕рд░рд╛ рд╣рдорд╛рд░реЗ рдЧреНрд░рд┐рдб рдХреЛ рдЬреЗрд▓реА рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛, рдЬреЛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдиреЗ рддрдХ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХрд░реЗрдЧрд╛ред
рд╣рдо рдкрд╣рд▓рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдПрдХ рдирдпрд╛
рд╕рд┐рдореНрдкрд▓рдЧреНрд░рд┐рдб рдХреНрд▓рд╛рд╕ рдФрд░ рдЙрд╕рдХреА рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
рдмрдирд╛рдПрдБрдЧреЗ :
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; namespace GridDistortion { public class SimpleGrid { publicGridVertexPositionColorTexture grid;
рдирд┐рдпрдВрддреНрд░рдХ рд▓рд┐рдЦрд╛ рд╣реИ, рдЕрдм
Game1 рдкрд░ рд╡рд╛рдкрд╕, рджреЛ рдирдП рдЪрд░:
GridVertexPositionColorTexture grid; SimpleGrid simpleGrid;
рдЙрдирдХрд╛ рдкреНрд░рд╛рд░рдВрдн:
grid = new GridVertexPositionColorTexture(); grid.BuildGeometry(48, 80, new Vector2(10, 10)); simpleGrid = new SimpleGrid(grid);
рдЦреБрдж рдХреЛ
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ :
simpleGrid.Update();
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдбреНрд░рд╛рдЗрдВрдЧ:
GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp;
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреВрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд░реВрдкрдг рдпрд╛ рд▓реЗрдВрд╕ рдХрд╛ рдкреНрд░рднрд╛рд╡ рджреЗрдЦрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдХреБрдЫ рдордЬрд╝реЗрджрд╛рд░ рд╣реИрдВ, рдмрдирд╛рд╡рдЯ рд╕реЗ рдЬреЗрд▓реА
рдмрдирд╛рдПрдВ ,
рд╕рд┐рдореНрдкрд▓рдЧреНрд░рд┐рдб рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА
рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрдЧреНрд░рд┐рдб рдХреНрд▓рд╛рд╕:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; namespace GridDistortion { public class ElasticGrid : SimpleGrid { private Vector2[] Velocity;
Game1 рдореЗрдВ рдЧреНрд░рд┐рдб рдирд┐рдпрдВрддреНрд░рдХ рдмрджрд▓реЗрдВ рдФрд░ рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреА рдПрдХ рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╣рд░реЛрдВ
рдФрд░ рдЖрд╡рд╛рд░рд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╢реЗрдб рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рдиреАред
рдПрдХ рдмрд╛рд░ рдореИрдВ рдЖрдкрдХреЗ рдЦреЗрд▓ рдореЗрдВ рд╕реБрдВрджрд░рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред
рдпрд╣ рднреА XNA рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ 3 рдбреА рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
рдЦреИрд░, рдФрд░ рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рд╕рдВрднрд╡рдд: рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк WP7 рдкрд░ рдЧреЗрдо рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдореБрдлреНрдд рдореЗрдВ рд░рдЦреЗрдВ, рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЧрд░реАрдмреА рдореЗрдВ рдмреИрдареЗрдВред
рд╕реВрддреНрд░реЛрдВ рдХреЛ
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдкреНрд░рдпреЛрдЧ, рд╕реГрдЬрди; рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ :-)