У меня есть одна маленькая, но большая проблема с polyobject doors.
Вчера весь вечер потратил на то, чтобы разобраться почему происходит следующее:
Когда двери поставлены и написан скрипт, то почему-то сквозь правую дверь можно спокойно пройти, будто ее и нету. Это происходит в doomsday'е в моем втором wad'е на второй карте. В других тестовых wad'ах все почему-то нормально... Никак не могу понять, в чем проблема. Может, кто-то мне подскажет, что я не правильно делаю? Пишу на работе, скринов сделать нет возможности, но попытаюсь объяснить, как я ставлю двери (схемы внизу прилагаются):
0. Создаю начальный сектор.
1. Создаю два сектора для дверей.
2. Создаю сектор за дверьми.
3. Создаю сектор вне карты, где размещаю сами двери. При этом, естественно, сектора дверей удаляю (оставляя пустыми), чтобы их края считались односторонними.
4. Ставлю полиобъекты в уголках дверей с указанными параметрами angle (разными).
5. Ставлю сводные полиобъекты в секторах дверей, откуда они будут начинать движение, с соответсвующими параметрами angle (см. п.4).
6. Устанавливаю линиям с полиобъектами на дверях функцию 1 с параметрами (номер полиобъекта, номер зеркального полиобъекта, номер звука двери).
Например:
Полиобъект angle 1, зеркальный 2, звук 1.
Полиобъект angle 2, зеркальный 1, звук 1.
7. Прописываю следующий скрипт:
int mapvar0;
script 1 (void) {
if(mapvar0 == 0) {
polyobj_rotateright(номер полиобъекта, скорость, угол поворота);
mapvar0 = 1;
}
}
8. Устанавливаю переключатель выполняющий скрипт или делаю это прямо на дверях.
Все, по идее все работает. Особенно на простеньких тестовых wad'ах. А в моем wad'е, который я разрабатываю, хрень какая-то. Ну как можно пройти сквозь дверь? Что может на моей карте влиять на это? Ведь на ней не присутствуют другие полиобъекты и пока еще нет других скриптов.
Вот, набросал в фотошопе схемки:
P.S. Высота секторов стандартная 128. Угол поворота в скрипте стандартный 64.