Предыдущая Следующая
160 Движение спрайтов в пространстве
Рис. 8.2. Назначение спрайту новой позиции в игровом пространстве
в исходном коде класса Gamel проекта MoveSpriteArray вместо одиночного объявления спрайта появляется объявление массива спрайтов.
Sprite[] sprite = new Sprite[5];
Здесь мы объявляем массив данных, исчисляемый пятью спрайтами. Все эти пять спрайтов, а точнее каждый из спрайтов будет загружать в игру свое уникальное изображение и представлять тот или иной объект. Каждый спрайт использует анимационную последовательность для создания динамики в игре, посмотрите на рис. 8.3, где представлены пять изображений, загружаемых в игру.
Все изображения, загружаемые в игру, размещаются в рабочем каталоге проекта в папке Content\Textures. Не забывайте, что все пять рисунков необходимо явно добавить в проект посредством команд Add = Exiting Item, как мы это делали в предыдущих главах.
Далее в конструкторе класса Gamel происходит создание пяти объектов. Для этих целей используется обычный цикл for.
for (int i = 0; sprite.Length > i; {
sprite[i] = new Sprite(12, 10);
}
Проект МоуеБрптеАггау 161
Рис. 8.3. Изображения, загружаемые в игру
Единственное условие в этой конструкции кода заключается в том, чтобы все изображения имели одинаковую анимационную последовательность, то есть количество фреймов всех изображений должно быть одинаково (как у нас в игре). Если одно и более изображений имеют различное количество фреймов, то придется загружать каждый спрайт по отдельности, сделать это можно, например, следующим образом:
зргл_ге[0] = пея Бргл_ге(5, 3);
зргл_ге[1] = пея Брг1ге(8, 2);
зргл_ге[2] = пея Брг1ге(2, 2);
зрг1ге[3] = пея Брг1ге(3, 1);
зрг!ге[4] = пея Брг1ге(15, 2);
После создания массива данных переходим к методу LoadGraphicsContent() и к загрузке в массив данных графических изображений.
162 Движение спрайтов в пространстве
sprite[0].Load(content, «Content\\Textures\\0»);
sprite[1].Load(content, «Content\\Textures\\1»);
sprite[2].Load(content, «Content\\Textures\\2»);
sprite[3].Load(content, «Content\\Textures\\3»);
sprite[4].Load(content, «Content\\Textures\\4»);
Названия для изображений я специально задал в виде цифровых значений, чтобы был понятен механизм загрузки графики для каждого элемента массива данных. Кстати, поскольку имена изображений совпадают с данными массива, то можно реорганизовать вышеприведенный код в цикл, но эти действия выполняйте самостоятельно - домашнее задание ;) Предыдущая Следующая
|