Полный код
using
Microsoft.Xna.Framework;
using
Microsoft.Xna.Framework.Graphics;
using
Microsoft.Xna.Framework.Input;
namespace
Game1
{
public
class
Game1 : Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Texture2D texture;
Vector2 position = Vector2.Zero;
int
frameWidth = 108;
int
frameHeight = 140;
Point currentFrame =
new
Point(0, 0);
Point spriteSize =
new
Point(8, 2);
public
Game1()
{
graphics =
new
GraphicsDeviceManager(
this
);
Content.RootDirectory =
"Content"
;
TargetElapsedTime =
new
System.TimeSpan(0, 0, 0, 0, 400);
}
protected
override
void
Initialize()
{
base
.Initialize();
}
protected
override
void
LoadContent()
{
spriteBatch =
new
SpriteBatch(GraphicsDevice);
texture = Content.Load<Texture2D>(
"scottpilgrim_multiple"
);
}
protected
override
void
UnloadContent()
{
}
protected
override
void
Update(GameTime gameTime)
{
if
(GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit();
++currentFrame.X;
if
(currentFrame.X >= spriteSize.X)
{
currentFrame.X = 0;
++currentFrame.Y;
if
(currentFrame.Y >= spriteSize.Y)
currentFrame.Y = 0;
}
base
.Update(gameTime);
}
protected
override
void
Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
spriteBatch.Draw(texture, position,
new
Rectangle(currentFrame.X * frameWidth,
currentFrame.Y * frameHeight,
frameWidth, frameHeight),
Color.White, 0, Vector2.Zero,
1, SpriteEffects.None, 0);
spriteBatch.End();
base
.Draw(gameTime);
}
}
}
Source: Blog
372