Предыдущая Следующая
}
/// <summary>
/// Цикличный переход по фреймам - анимация /// <summary>
public void UpdateFrame(double elapsed)
{
totalElapsed += elapsed;
if (totalElapsed > timeFrame)
{
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. Класс Gamel проекта Animation
Теперь давайте перейдем к рассмотрению класса Game1 проекта Animation. Ниже в листинге 7.2 представлен исходный код этого класса. Сначала посмотрим на весь код этого класса, а затем приступим к его изучению.
//=========================================================================
/// <summary>
/// Листинг 7.2
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express" /// Автор книги: Горнаков С. Г.
/// Глава 7
100 Спрайтовая анимация
Проект Animation 101
/// Проект: Animation /// Класс: Game1 /// Создаем анимацию /// <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 Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; SpriteBatch spriteBatch; Sprite sprite;
/// <summary> /// Конструктор /// <summary> public Game1()
{
graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1024; graphics.PreferredBackBufferHeight = 7 68; graphics.PreferMultiSampling = false; graphics.IsFullScreen = true; sprite = new Sprite(12, 10); Предыдущая Следующая
|