Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3D RAD_Ещё об Объектах (улучшаем игру)

.docx
Скачиваний:
68
Добавлен:
05.02.2015
Размер:
1.52 Mб
Скачать

Объект Path.

Задаем путь движения динамических объектов.

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

А вот боты, другими словами автомобили соперников руководствуются исключительно траекторией, которая задается объектом Path в 3D Rad.

Следовательно объект Path задает путь движения динамических объектов в игре. Давайте добавим его в проект. Свяжем с машиной, другими словами с объектом Car и перейдем к параметрам настроек.

Поле Path Nodes в котором будет прописанная траектория движения должно быть пока пустым. Его следует очистить.

Напротив параметра Recording Mode - Freg ставим флажок, то есть активируем его. А в поле напротив ставим - 1.

В поле параметра Thickness вписываем значение - 0.1. Car устанавливаем в положение PARENT. Теперь сохраняем настройку и запускаем игру в тестовом режиме клавишей Space. Дальше нужно двигаться в нужном направлении, а объект Path будет записывать заданный вами путь. При этом вы будете слышать характерный звук, что чем-то напоминает удары сердца. После проведения данной операции отсоединяем объект Car в списке объектов, опять открываем настройку параметров объекта Path и в первую очередь снимаем флажок около Recording Mode - Freg. Как видим в поле Path Nodes появилась запись нашего пути. Данное поле не трогаем. Все остальные параметры возвращаем в предыдущее положение. Дальше можем приступать к объекту CarAI.

Oбъект CarAI.

Искусственный интеллект в игре.

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

Тогда и используют функции CarAI. Следовательно допустим, что в нашем проекте присутствует один соперник. То есть у нас есть такие объекты, как Car, Car2, Path.

Теперь добавим объект CarAI и свяжем его флажками с выше упомянутыми объектами. Открываем вкладку с настройками его параметров и делаем все так, как на изображении ниже. Объект Car, машину игрока, устанавливаем в положение OBSTACLE/TARGET, Car2 - DRIVABLE VEHICLE, а Path в положение PATH.

Теперь запускаем игру в тестовом режиме и если все сделано верно машина соперника начинает двигаться самостоятельно путем прописанным в объекте Path и руководствуясь искусственным интеллектом CarAI.

Создаем спидометр с помощью объекта Sprite.

Спидометр (объект Sprite, объект - Script)

Для любой гоночной аркады спидометр является незаменимым атрибутом в игре. В данной публикации мы поговорим, как именно его создать. Для этого мы используем объект Sprite. Добавляем его в проект. Делается это с помощью вкладки Object. В целом надеюсь вам уже известно. Следовательно теперь открываем его параметры и делаем все так, как на изображении ниже. С помощью Change выбираем RotaryDialA.

Мы создали шкалу для нашего спидометра. Теперь следует добавить еще один объект Sprite. Дальше переходим к настройкам его параметров. Опять с помощью Change выбираем RotaryDialB.

Пришло время добавить в проект новый объект - Script. Этим мы добавим стрелку спидометра. В правое поле вставляем ниже приведенный скрипт:

//This script adjusts a sprite orientation runtime depending //on the car's speed. Useful to implement, for example, a //rotary-dial-based speedomenter void Main() { Quaternion spriteOrientation; float zero = 110; //gauge position when speed is zero float range = 6; //gauge range (in degrees) for each meter per second iQuaternionFromEulerAngles(spriteOrientation,0,0,zero-IN_3*range,"xyz"); iObjectOrientationSet(OBJ_0,spriteOrientation); }

После этого соединяем Script со вторым Sprite и объектом Car. Й в завершение нужно осуществить еще некоторые действия. Открываем объект Script. В поле OBJECT HANDLES есть ID объектов Car и второго Sprite того, которое отвечает за стрелку спидометра. Идентификаторы этих объектов нужно вписать в сам скрипт.

ID объекта Car пишем в zero - IN _..., а идентификатор Sprite - в OBJ _...,spriteOrientation. Думаю здесь все просто. Например, если в поле OBJECT HANDLES стоит [OBJ 0]- Sprite, то в скрипте пишем -(OBJ 0, spriteOrientation). Сохраняем настройку и запускаем игру в тестовом режиме.

Вот такой вид будет иметь наш спидометр. Когда авто начинает двигаться его стрелка тоже двигается

Объект EventTimer.

Простой таймер в игре.

Добавим простой цифровой таймер в игру. Для этого добавим в наш проект объект EventTimer. Параметры данного объекта рассматривать не будем и никаких изменений вносить тоже. Но для того, чтобы таймер отображался на экране монитора в игре нужно добавить еще один объект - ValuePrint. Добавляем в проект и открываем его параметры.

В группе Parameters слева вы можете выбрать размер и цвет шрифта для отображения цифрового таймера. С правой стороны есть параметры, которые отвечают за формат времени и локализацию таймера на экране. Советую делать так, как на изображении. В группе Relationships параметр EventTimer следует установить в положение Elapsed seconds is the value to PRINT. Теперь наш таймер готов к использованию.

Объекты Waypoint и Race Tracker.

Для того, чтобы отследить гоночный заезд от старта и до самого финиша в 3D Rad используют объекты Race Tracker и Waypoint. Первый отслеживает все объекты Waypoint расположенные на трассе через которые проходят автомобиль игрока и авто соперников в процессе гонки. Именно поэтому их всегда используют вместе. Следовательно сначала следует добавить в проект и расставить на треке несколько объектов Waypoint. В списке объектов их необходимо добавлять в таком порядке, в котором они должны быть пройдены во время заезда. Последним всегда считается первый Waypoint. Давайте добавим в наш проект, выше отмеченные объекты. По умалчивании Waypoint имеет вид небольшого куба. Но с помощью стрелок в визуальном редакторе его можно растянуть по ширине трассы например, как на изображении.

Параметры данного объекта рассматривать не будем и вносить изменения тоже. Будем считать, что мы добавили объекты Waypoint и равномерно расставили их по трассе. Теперь переходим к объекту Race Tracker. Добавляем в проект, соединяем с объектом Car, машинами соперников и всеми Waypoint и открываем настройку его параметров. В поле Relationships делаем все так, как в приведенном изображении. В этом примере Bot1 это машина соперника.

С помощью объекта Race Tracker можно отслеживать статистику гонки для авто пользователя игры. То есть количество пройденных кругов и положение в гонке

Объект ExitFade.

Переход между уровнями с помощью

С помощью объекта ExitFade мы можем осуществлять выход из игры, или переход между ее уровнями. Например, мы прошли первый трек автогонки и на финише нам выводится сообщение: "для продолжения нажмите F2". Жмем на предложенную клавишу и открываем следующий трек. То есть с помощью ExitFade мы имеем возможность связать два отдельных проекта в 3D Rad и осуществить между ними переход. Добавляем в проект объект ExitFade. Открываем его настройку.

В поле Fade time, in seconds вводим время, в течение которого состоится переход в секундах.

С помощью Fade color можно выбрать цвет фона перехода. Если отметить пункт Fade all 2d gfх, то из поля зрения во время перехода исчезнут также все двухмерные объекты, например текст. А в поле Name of project to load on exit нужно ввести название проекта, который будет следующей локацией в игре.

Теперь следует активировать объект ExitFade и сделаем мы это с помощью EventOnInput. Добавляем его в проект.

Здесь в параметре Input Control выбираем клавишу при нажатии, на которую будет происходить переход на следующую игровую локацию. А параметр ExitFade ставим в положение Start on Input. Теперь при нажатии выбранной клавиши вы сможете перейти на следующий уровень игры.

Объект SoundEffect

Как добавить фоновую музыку в игру.

Хочу сразу отметить, что 3D Rad поддерживает wav и ogg форматы. При этом тип канала аудиофайла должен быть моно. Для начала выбранный файл нужно поместить в папку вот по такому пути: 3D Rad\3DRad res\objects\SoundEffect\data. Теперь добавляем в проект объект, который отвечает за звучание фоновой музыки. А называется он - SoundEffect. Добавляем его в проект привычным способом. Дальше открываем параметры настроек объекта.

Параметр Sound Frequency отвечает за скорость воспроизведения музыкального трека. Sound Volume регулирует громкость музыки. Если отметить параметры Looping и Playing at stat, то музыка начнет звучать с начала запуска проекта, и трек будет повторяться.

Компиляция игры.

Открываем компилятор проектов с помощью ярлыка в папке с 3D Rad. Вот, как выглядит его окно.

С помощью Add Project добавляем проект, указываем название будущей игры, при желании выбираем иконку для запуска в iso формате и жмем Compile. Теперь осталось дождаться момента завершения компиляции и наслаждаться своей игрой.