Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Листинг 11.3. Функции полета мухи.

Функция № 5: AudioCapabilities | Функция № 12: SetTimerDivisorRate | Функция № 14: PostAudioPending | Функция № 18: Адрес флага ожидания и адрес «семафора» DIGPAK | Функция № 21: Установка режима обратной записи DMA | Функция № 25: SetDPMIMode | Функция № 18: PollMidPak | Функция № 23: ReportSequenceNumber | АЛГОРИТМЫ, СТРУКТУРЫ ДАННЫХ И МЕТОДОЛОГИЯ ВИДЕОИГР | Алгоритм 11.1. Контроль столкновений с помощью описанных прямоугольников. |


Читайте также:
  1. II. Функции школьной формы
  2. II. Функции школьной формы
  3. II. Функции школьной формы
  4. II. Функции школьной формы
  5. II. Функции школьной формы
  6. include "widgets/Common.h" // общие функции
  7. L Вводом функции с клавиатуры

void Erase_Flies(void) // удаление мух

for (каждой структуры данных полета мухи) do

{

удаление мухи

} // конец цикла

void Move_Flies(void) // перемещение мух

for (каждой структуры данных полета мухи) do

{

current_fly.x+=current_fly.xv; // перемещение по оси Х

current_fly.y+=current_fly.yv; // перемещение по оси У

}

Мы могли бы создать похожие функции для рисования мух и контроля за их столкновениями. Однако я думаю, что вы уловили суть. Мы создаем одну процедуру для каждого действия над объектом и затем создаем множество объектов данных. Например, если бы у нас было тысяча мух, каждая из функций работала бы с тысячью структур.

Состояния бытия

Теперь я хотел бы обсудить одну философскую тему. Это и в самом деле философия, поскольку каждый из профессионалов делает это по-своему. Например, я пришел к выводу, что удобно включить в набор переменных, представляющих игровой объект, переменную «состояния». Эта переменная помогает оценивать объект с точки зрения того, должен ли он как-то меняться в зависимости от пространства или окружающей среды.

Например, мне всегда нравится в каждой структуре иметь переменную, которая описывает состояние объекта: жив, мертв, голоден и т, д. Эта переменная помогает в написании функций, создающих картину того, как объект погибает или воскресает вновь.

Поле состояния в структуре данных объекта надо иметь также и для того, чтобы использовать некоторые функции, изображающие объект в тот момент, когда он совсем здоров и когда он умирает. Эта особая информация берется из переменных состояния. Более подробно мы рассмотрим это в тринадцатой главе, «Искусственный интеллект». Однако сейчас нам надо знать, что система или объект в компьютерной игре (как и в реальной жизни) может проходить ряд состояний. Для того чтобы этого достичь, мы будем использовать переменные состояния в структуре данных каждого объекта.

Как пример использования состояния для оценки некоторых аспектов объекта игры давайте посмотрим на маленькую программу, создающую муравья. Муравей может ходить в разные стороны, пока не наткнется на стену или камень, после чего он выбирает новое направление (на север, юг, запад или восток). Так как четыре направления отслеживаются достаточно просто, мы можем воздержаться от использования переменных состояния. Однако движение на север, юг, запад и восток могут быть легко заменены такими эмоциями как чувство голода, усталость, счастье или гнев.

Для наглядности, используя наш метод имитации игровых объектов, я создал целый муравейник. Листинг 11.4 показывает эту программу.


Дата добавления: 2015-07-12; просмотров: 108 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Листинг 11.2. Структура данных игрока.| Листинг 11.4. Муравейник (ANTS.С).

mybiblioteka.su - 2015-2024 год. (0.005 сек.)