Предыдущая Следующая
/// Цикличный переход по фреймам - анимация /// <summary>
public void UpdateFrame(double elapsed)
{
totalElapsed += elapsed;
if (totalElapsed > timeFrame)
144 Спрайтовая анимация
{
frame++;
frame = frame % (frameCount - 1); totalElapsed -= timeFrame;
} }
}
/// <summary>
/// Загрузка спрайта в игру /// <summary>
public void Load(ContentManager content, String stringTexture) {
spriteTexture = content.Load<Texture2D>(stringTexture);
}
/// <summary>
/// Рисуем простой спрайт
/// <summary>
public void DrawSprite(SpriteBatch spriteBatch)
{
spriteBatch.Draw(spriteTexture, spritePosition, Color.White);
}
/// <summary>
/// Рисуем анимированный спрайт /// <summary>
public void DrawAnimationSprite(SpriteBatch spriteBatch)
{
int frameWidth = spriteTexture.Width / frameCount;
Rectangle rectangle = new Rectangle(frameWidth * frame, 0, frameWidth, spriteTexture.Height);
spriteBatch.Draw(spriteTexture, spritePosition, rectangle, Color.White);
} }
}
7.1.3. Класс Game1 проекта Animation
Теперь давайте перейдем к рассмотрению класса Gamel проекта Animation. Ниже в листинге 7.2 представлен исходный код этого класса. Сначала посмотрим на весь код этого класса, а затем приступим к его изучению.
//=========================================================================
/// <summary>
/// Листинг 7.2
/// Исходный код к книге:
/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express»
/// Автор книги: Горнаков С. Г.
/// Глава 7
/// Проект: Animation
/// Класс: Gamel
/// Создаем анимацию
Проект Animation 145
/// <summary>
//=========================================================================
#region Using Statements using System;
using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion
namespace Animation {
public class Gamel : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics; ContentManager content; SpriteBatch spriteBatch; Sprite sprite;
/// <summary> /// Конструктор /// <summary> public Game1()
{
graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1280; graphics.PreferredBackBufferHeight = 720; sprite = new Sprite(12, 10); Предыдущая Следующая
|