Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

} }

}

В сформированном файле Sprite.cs в области подключения библиотечных классов добавляются дополнительные библиотеки, которых при формировании шаблона Visual C# не было. Затем в исходном коде класса Sprite идет объявление двух объектов.

public Texture2D spriteTexture; public Vector2 spritePosition;

Первый объект spriteTexture класса Texture2D будет содержать загруженное в программу изображение, а второй объект spritePosition класса Vector2 - задавать местоположение спрайта на экране. Здесь наблюдается прямая аналогия с примером, рассмотренным в предыдущем проекте, но все объявления и действия по загрузке изображений будут происходить непосредственно в классе Sprite.

Конструктор класса Sprite остается без реализации. В следующей главе мы будем изучать спрайтовую анимацию и создадим дополнительный конструктор

134 Работа с двухмерной графикой

для класса Sprite, направленный на создание объекта с возможностью анимации. В итоге у нас получатся два разных конструктора: один - для создания не-анимированных объектов, а другой - для анимированных изображений.

Затем в исходном коде файла Sprite.cs следует описание метода Load(), который в качестве параметров принимает объект content класса ContentManager и объект stringTexture класса String.

public void Load(ContentManager content, String stringTexture) {

spriteTexture = content.Load<Texture2D>(stringTexture);

}

Объект content необходим для вызова метода Load<Texture2D>(), а значит, и для возможности загрузки в программу изображения непосредственно через класс Sprite. Второй объект stringTexture будет содержать строку текста, в которой мы будем передавать путь к загружаемому изображению. На этом этапе можно было сразу прописать путь к графическому файлу, но тогда метод Load() можно будет использовать только один раз для загрузки одного жестко заданного изображения. В нашем случае метод Load() универсален и годится для загрузки любого спрайта. Достаточно лишь вызвать этот метод в классе Gamel и в качестве параметров передать объект content и указать путь к спрайту.

После метода Load() идет реализация метода DrawSprite(), отвечающего за рисование спрайта на экране.

public void DrawSprite(SpriteBatch spriteBatch)

{

spriteBatch.Draw(spriteTexture, spritePosition, Color.White);

}

В этом методе происходит вызов системного метода Draw() , а в качестве параметров выступают спрайт, позиция на экране и цветовая составляющая. В сам метод DrawSprite() в качестве параметра передается объект spriteBatch класса SpriteBatch, для возможности вызова метода Draw() непосредственно через класс Sprite. На этом реализация класса Sprite закончена, давайте перейдем к рассмотрению исходного кода класса Gamel.


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz