Предыдущая Следующая
}
/// <summary>
/// Инициализациия
/// <summary>
protected override void Initialize()
{
sprite.spritePosition = new Vector2(Window.ClientBounds.Width / 2, Window.ClientBounds.Height / 2);
base.Initialize();
}
/// <summary>
/// Загрузка компонентов игры /// <summary>
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
spriteBatch = new SpriteBatch(graphics.GraphicsDevice); sprite.Load(content, "Content\\Textures\\sprite");
}
}
/// <summary>
/// Освобождаем ресурсы
/// <summary>
protected override void UnloadGraphicsContent(bool unloadAllContent)
{
if (unloadAllContent == true)
{
content.Unload();
}
}
/// <summary>
/// Обновляем состояние игры /// <summary>
protected override void Update(GameTime gameTime)
{
keyboardState = Keyboard.GetState(); if (keyboardState.IsKeyDown(Keys.Escape)) this.Exit();
double elapsed = gameTime.ElapsedGameTime.TotalSeconds; sprite.UpdateFrame(elapsed);
base.Update(gameTime);
}
/// <summary>
/// Рисуем на экране
/// <summary>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteBlendMode.AlphaBlend); sprite.DrawAnimationSprite(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
} }
}
В этом коде в области глобальных переменных происходит объявление объекта sprite класса Sprite.
102 Спрайтовая анимация
Проект Background 103
Sprite sprite;
Затем в конструкторе класса Gamel создается полноценный объект sprite.
sprite = new Sprite(12, 10);
Для формирования этого объекта используется конструктор класса Sprite, подготовленный для создания анимированных объектов. В качестве параметров в конструктор класса Sprite передаются два целочисленных значения. Первое значение - это количество фреймов анимационной последовательности для загружаемого в игру изображения. Второй целочисленный параметр конструктора класса Sprite задает определенное значение, на базе которого происходит расчет времени задержки для показа одного фрейма анимационной последовательности.
Далее в исходном коде класса Gamel в методе Initialize() назначается позиция для спрайта на экране монитора, а в методе LoadGraphicsContent() происходит загрузка изображения sprite.png. Исходное изображение располагается в рабочем каталоге проекта в папках Content\Textures.
Затем в методе Update() мы обновляем состояние игры и вызываем метод UpdateFrame() класса Sprite. Предыдущая Следующая
|