Имитация смены направления гравитации
Понадобилось мне сделать на карте смену направления гравитации на определенном участке. Но таких entity не предусмотрено, следовательно без кодинга не обойтись. И решил я сымитировать эту смену направления гравитации.
Используемые энтити
Реализация
Делаем две комнаты - в одной игрок рождается, во вторую, соответственно, идет после рождения. Я сделал две комнаты, одна над другой, и между ними - проход. Из нижней комнаты я сделал func_door_rotating с параметрами:
Параметр | Значение |
---|---|
Name | room1 |
Speed | 200 |
Delay before close | -1 |
Lip | 90 |
Флаги | |
X Axis |
В проходе надо поставить trigger_once так, чтобы он не касался стен, и trigger_gravity вровень с полом - чтобы игрок не активировал его раньше времени. Только не забудьте потом поставить еще один trigger_gravity для деактивации первого.
Параметры trigger_once:
Параметр | Значение |
---|---|
Target | room1 |
Delay before trigger | 0.5 |
Параметры trigger_gravity:
Параметр | Значение |
---|---|
Gravity | 0.5 |
Результат
Теперь, когда игрок заходит в другую комнату, она (со всем содержимым) переворачивается набок, и создается ощущение, ходьбы по стене. Из декоративных мелочей я сделал копию верхней комнаты и, перевернув ее на бок, подставил туда, где будет проход нижней комнаты после "смены гравитации". Можно конечно поиграться с тем же func_rotating или func_door_rotating, чтобы не копировать комнату, а переносить ее туда куда надо. Но мне было лень, и для моих целей хватало того, что я сделал.
Автор: | Slux |
---|---|
Дата: | 27.09.2008 |