Просмотр
Материал из DoomDev
Страница «
Гравитация
»
Перейти к:
навигация
,
поиск
[[Изображение:grav1.jpg|frame|center|Рисунок 1: гравитации в действии]] Одной их вещей, не понравившихся мне в Doom, было то, что сила притяжения везде одна и та же, вне зависимости от окружающей среды. Однако это было изменено ZDoom. В ZDoom реализован простой в использовании спецификатор гравитации, поэтому разработчики уровней могут создавать намного более реалистичные уровни. [[Изображение:grav2.gif|frame|center|/##<br> Gravity = Нормальная гравитация<br> Gravity Normal = нормальной гравитации<br> SwitchSets #2 Gravityto = Выключатель уменьшает гравитацию в секторе 2 до нормальной<br> Line = Линия<br> Linedefsets #2 GravityBacktoNormalWhenCrossed = При пересечении линии 1 гравитация в секторе 2 увеличивается до нормальной<br> FloorHeight 128 = Высота пола равна 128<br> ##/<br> Рисунок 2: План карты в WadAuthor]] На рисунке 2 показан план уровня-примера [http://zdoom.org/zdkb/grav.zip gray.wad]. Цифры на рисунке 2 предназначены только для наглядности и не соответствуют настоящим номерам секторов или линий. Высота пола сектора 3 равна 128. При обычных обстоятельствах невозможно перепрыгнуть сектор, имеющий такую высоту, но сектор 1 имеет гравитацию равную от нормальной. На рисунке 1 показано, как игрок подражает супермену, одним махом перепрыгивая высокие сектора. J Гравитация сектора 1 всегда равна и устанавливается при помощи [[OPEN]]-скрипта: #include “zcommon.acs” script 1 OPEN { // Одна четвертая гравитации Sector_SetGravity(1, 0, 25); } OPEN-скрипт выполняется при загрузке карты. [[Sector_SetGravity]] tag, целая_часть, дробная_часть * tag – tag сектора * целая_часть – Целая часть коэффициента гравитации * дробная_часть – Дробная часть коэффициента гравитации Гравитация рассчитывается по следующей формуле (взята из справочника по ZDoom): sv_gravity * (целая_часть + дробная_часть * 0,01), где sv_gravity – cvar, определяющая нормальную гравитацию. Половина нормальной гравитации устанавливается следующей строкой: Sector_SetGravity(1, 0, 50); sv_gravity * (0 + 50 * .01) sv_gravity * (50 * .01) sv_gravity * (.50) Из приведенного выше уравнения видно, что sv_gravity будет разделена на два, то есть, то что ожидалось. Когда игрок войдет в сектор 2, он не сможет вернуться в сектор 1, так как в этом секторе нормальная гравитация и в нем невозможно прыгнуть достаточно высоко. Однако, при помощи выключателя гравитация в секторе 2 будет уменьшена до нормальной, что позволит игроку перепрыгнуть пол сектора 3. {{RCTutorial}}
Шаблон:RCTutorial
Возврат к странице
Гравитация
.
Просмотры
Статья
Обсуждение
Просмотр
История
Личные инструменты
Представиться системе
Навигация
Заглавная страница
Сообщество
Текущие события
Свежие правки
Случайная статья
Справка
Поиск
Инструменты
Ссылки сюда
Связанные правки
Загрузить файл
Спецстраницы