.::Russian Blood Community Forum::. »Blood: The Game We Playing In » Blood TC for Duke3D » Главная |
Страниц (45): первая страница « 34 35 36 37 38 39 40 41 42 [43] 44 45 » |
409. flanker - 01 Апреля, 2015 - 21:37:06 |
>при рокетджампе игрок постоянно пролетает сквозь стены т.е. нужен простой алгоритм нахождения пересечения двух отрезков: траектории игрока и стен сектора? >но нуля не получается, получается какое то эпичное постоянно число очевидно, это число и следует взять за ноль, нет? |
410. [M210®] - 01 Апреля, 2015 - 22:25:00 | ||
Цитата:
Да, это может пригодится, но с плоскими спрайтами сложнее, у них есть только центральная координата и абстрактный размер, не привязанный к краям спрайта...собственно, эти края нужно как то находить... Цитата:
Тоже самое число получается и на конечном расстоянии...т.е. получится, что например на расстоянии 2м от игрока будет вызываться тот же самый эффект, если бы взрыв произошел под ногами - будет неправильная траектория отлета...ну я уже не помню точно, а чем заключалась эта проблема, и не помню, удалось ли ее победить...а проблема с пересечением отрезков стоит жестко |
411. flanker - 02 Апреля, 2015 - 16:13:22 | |
Цитата:
размер спрайта задается размерностью самой картинки + свойствами спрайта: repeatX, repeatY высота спрайта= высота в пикселях (умножить на) repeatY (умножить на) 4; ширина спрайта= ширина в пикселях (умножить на) repeatX (делить на) 8; |
412. qqzzxxcc - 02 Апреля, 2015 - 19:09:48 |
Привет, поигрался в BloodCM всё очень круто, правда несколько вопросов, возможно глупых (играю без HRP). 1) ХоМы если смотришь на зеркало (или дыры в стенах от взрыов) находясь в другом секторе это нормально? 2) У меня не играла музыка на E1M3? 3) Понимаю что вкусовщина, но как сделать цвета-яркость-контраст как в оригиналедосбоксе? Если яркость я кое-как накрутил, то с контрастом и цветом (а с ним тем более) есть проблемы например досбокс любит уводить красные вилы и землю в слегка фиолетовый уводить, eduke же любит грязнокрасный. 4) С polymer (этот вообще любит блумить на пустом месте)polymost нет смысла играть как я понял? Воксели не поддерживаются, а с моделями нито. (Отредактировано автором: 02 Апреля, 2015 - 19:13:40) |
413. [M210®] - 03 Апреля, 2015 - 10:37:30 | |||||
Цитата:
Ну так а высоту в пикселях откуда брать? Если из ART файлов, то это не вариант, не по-людски городить статический массив с информацией о пикселях для чуть ли не 10000 картинок + не будет тогда работать с "любительскими" спрайтами Цитата:
не совсем понял, о чем ты? Цитата:
А в оригинале ее в нет на этом уровне Цитата:
Это к разрабам eduke32 Но скорее всего никак. Цитата:
В корне ТСа надо удалить dll-файлы, тогда блума не будет |
414. flanker - 03 Апреля, 2015 - 13:24:59 |
>Ну так а высоту в пикселях откуда брать? ну, я например, в конверторе подгружаю такую табличку http://pastebin.com/raw.php?i=1GFB1Hb2 всего 4860 строк, но многие многие пиксы из анимации, и их можно удалить. например, найти повторяющиеся друг за другом строки, удалить повторы оставив только заголовочные. строки до 5120 тоже можно удалить, через эти спрайты прыгать не потребуется. |
415. [M210®] - 03 Апреля, 2015 - 20:00:53 |
flanker, это все равно фигня получается, не правильно так делать) есть возможность использовать hitscan, но это "дорогостоящая" операция, и я пока не совсем уверен, что она там к месту |
416. qqzzxxcc - 03 Апреля, 2015 - 23:57:59 | |
Цитата:
HoM - Hall of Mirrors http://i.imgur.com/kshx18H.png http://i.imgur.com/EE3DtM5.png http://i.imgur.com/LJKY4MX.png И с АИ культистов беда когда они на мелких ящиках или еще чем-то стоят, начинают нервничать и дергаться. Калеба в зеркалах не видно (в работающих). (Отредактировано автором: 03 Апреля, 2015 - 23:58:33) |
417. [M210®] - 04 Апреля, 2015 - 22:02:34 |
qqzzxxcc AI я немного подправил, в следующем релизе такого не должно быть. а на счет бликов от зеркал, это ошибки рендера - нормально))) Но в новых билдах уже вроде чтото исправили |
418. Nebula - 08 Апреля, 2015 - 10:29:29 |
Приветствую почитателей крови. Уважаемые, подскажите - где взять последний билд кашей модификации? Все, что удалось найти - это 06.2013, я так понимаю версия полутора-годовалой свежести? А судя по этой ветке форума - обсуждаете вы что-то поновее )) Очень уважаю ваш труд и рад, что кто-то этим занимается. |
419. flanker - 08 Апреля, 2015 - 12:02:40 |
>где взять последний билд вашей Nebula, нигде (: там сейчас все упирается в карты, а мапперов нет ( если [M210®] соберется то, возможно, выложит те карты что успели сделать, если нет, то будем надеяться, что конвертер карт, который я делаю, к лету начнет выдавать что-нибудь играбельнное, и тогда карт будет завались) |
420. [M210®] - 09 Апреля, 2015 - 20:00:36 | |
Цитата:
Все правильно, это официальный релиз) А новый релиз я хотел сделать, после того как проверю, нет ли глюков с новыми картами, и если глюков нет, сделал бы незапланированный релиз(т.к. новых карт практически нет) Но проблема в том, что все это нужно проверить на наличие глюков, чем мне сейчас лень заниматься...может в ближайщее время найду силы, все проверю и тогда сделаю релиз) |
421. Nebula - 12 Апреля, 2015 - 18:48:07 |
Жаль, что пока так Может нужна посильная помощь? В чем именно загвоздка? Программированием занимаюсь лет 15 как - возможно помогу продвинуться дальше.. |
422. flanker - 13 Апреля, 2015 - 00:06:19 |
Nebula, помощь конечно нужна, но многое зависит и от того, на чем вы программируете, и в чем желаете помочь. Если хотите дорабатывать игровую логику то вам к [M210®], если интересует конвертер карт, то вам ко мне. Если заинтересуетесь конвертером, то он написан на C++11, его актуальная версия сейчас здесь: http://github.com/flank1er/blud2e/tree/master/blud2e но сейчас помощь мне нужна не в программировании, а в разработке алгоритмов. Что бы вы не тратили время на изучение кодовой базы, я могу выдавать абстрагированные задачки, для неспешного решения. ну например, иногда требуется преобразовать спрайт в внутренний сектор. Итого: плоскость 2D, спрайт заданный как отрезок с центральной точкой (х,у), углом относительно относительно оси абсцисс и длиной. нужно преобразовать в прямоугольник с минимальной шириной =32. Создаваемые прямоугольники не должны пересекаться. наглядный пример: получаемый прямоугольник должен быть задан в виде упорядоченного массива из 4-х координат (х,у) с обходом по часовой стрелке. (Отредактировано автором: 13 Апреля, 2015 - 00:25:17) |
423. [M210®] - 13 Апреля, 2015 - 12:24:05 |
flanker Распиши мне все актуальные проблемы, стоящие перед тобой. Я конечно, возможно, помог бы и с алгоритмом построения прямоугольных секторов из спрайтов, но тут есть решение по-проще уже с помощью отлаженной системы самого TCа... а именно с помощью mover'а Мувер (спрайт №15), ему присваивается уникальный owner, в zvel нужно указать бит соответствующий типу перемещения и такой же owner присваивается спрайтам, через xvel подается сигнал на "пуск" и оно все "крутится" бесконечно долго) Также можно поворачивать эти спрайты на определенный угол и в определенное время по сигналу Я сделаю карту пример и скину ее сюда, попробуй реализовать это так. Дюковскими эффекторами уже можно вообще не пользоваться, т.к. в ТСе есть свои более удобные вещи. Nebula, твой опыт несомненно может пригодиться, но задачи становятся все более сложными...а так, нужно сделать рокетджамп и наверное, улучшать ИИ врагам. (Добавление) http://rghost.ru/74x6Syyfh Вот пример, но видимо, такой пример не подойдет, т.к. во время вращения через эти спрайты можно бесприпятственно пройти, да и колбасит их у центра...но может пригодится. |
424. flanker - 13 Апреля, 2015 - 18:46:07 |
> http://rghost.ru/74x6Syyfh у меня они что -то не крутятся, наверно или скрипты старые или двиг, но вполне допускаю что это все можно заставить работать. > такой пример не подойдет при всех проблемах, это лучше, чем делать через замену спрайтов сектором, т.к. в HRP версии спрайты всегда можно поменять на модели, стены же моделями не заменишь. пока же мне проще снять блокировку со спрайтов в таком секторе, что бы можно было пройти. >Распиши мне все актуальные проблемы, стоящие перед тобой ну, так как преобразовать спрайты в сектора больше не требуется, то остается две проблемы: совмещение TROR секторов, и слайд сектора(не путать со слайд дверями) т.е. преобразование пустой петли во внутренний сектор. Штуки муторные, но решаемые. Сейчас я делаю каналы и тут интересная ботаника. Управление каналами вынесено в независимый функциональный класс, который ведет учет выданных каналов и назначает новые. Раньше было довольно по простецки. Если запрашивался канал, то проверялось, не выдан ли он, и если он был занят, выдавался новый. Это приводило к тому, что потом требовалось выстраивать заново цепочки: сенсоры - контроллеры(такие спрайты в комнате триггеров) - активаторы. НО в оригинальной карте они уже выстроены, и я пытаюсь сохранить оригинальные номера каналов без повторного перестроения. еще мне надо алгоритм принадлежности точки произвольному многоугольнику. Что бы перестало выдавать при загрузки карты, что спрайт фактически находится в другом секторе. простой алгоритм нашел в книге "Полигональные модели" автор Боресков. плюс вернуть обратно слайд двери, а это набор алгоритмов: вставка стены, удаление стены, вставка петли, преобразование во внутренний сектор. Итого где-то на месяц работы. После, можно будет что-то обсуждать, а пока прогресса в плане функционала с осени, почти полный ноль. Сейчас самая позитивная новость: удалось реализовать запись карты в шифрованный формат Blood. т.е. я прочитал карту, поменял ревизию(используется как ключ для шифрования), и сохранил в новый файл. мапедит проглотил, не пикнул. Еще сделал чтение из zip архива, теперь вместо кучки con - файлов, один архив. Фукционала конвертеру это понятно не добавляет, но все же прогресс) |
425. [M210®] - 14 Апреля, 2015 - 12:55:24 | ||
Цитата:
Да, тот скрипт я вчера написал, скину на почту последнее. Цитата:
TROR не представляю, как его можно программно совместить, в 4м эпизоде я задолбался в ручную совмещать их таким образом, чтобы не сильно нарушить геометрию... Тут нужен настоящий ИИ для этого...например водяные сектора хорошо совмещаются без последствий, и там, где мапперы пытались сохранить геометрию, типа как на e1m1 (хотя там тоже пришлось искажать, но не заметно) а в лесу, в 4м эпизоде, мапперы вообще не заботились о геометрии, разные высоты, разные переходы и приходится мудрить. Со слайд-секторами, вроде, должно быть попроще |
426. flanker - 14 Апреля, 2015 - 21:05:19 |
>TROR не представляю, сейчас, когда программа находит ROR сектор, она рекурсивно составляет список стыкуемых секторов для каждой половинки. Если полученные монжества пересекаются, они признаются не решаемыми и конвертер на такие случаи ругается, и идет дальше. Моя идея для решения таких случаев такая: - находятся уникальные кратчайшие пути по этому множеству из одной половины ROR в другую. часто из одного места в другое можно попасть разными путями. Алгоритм Дейкстры можно использовать или подобный. -в этих путях находятся прямоугольные сектора. если таких не найдется, то нарезать из имеющихся, не проблема. - далее ищется вариант, при котором смещение двух стен приведет к наименьшему изменению площади сектора. лучше конечно сектор со ступенькой, но можно и наклон рассчитать. - после, в найденных секторах, одни пары стен едут в одну сторону, другая в другую. вместе со своими половинками. - проверить чтобы ни один сектор не наехал на другой. как-то так. даже если коряво будет получаться, такое в редакторе имхо проще будет править, чем делать с нуля. в прошлый раз реализацию Дейкстры, я делал за вечер на плюсах? где то исходники должны валяться... Итого, муторно, но на мой взгляд, вполне решаемо. >еще мне надо алгоритм принадлежности точки произвольному многоугольнику. уже сделано) |
427. flanker - 15 Апреля, 2015 - 19:27:10 | |
[M210®], как будет время посмотри карту. https://yadi.sk/d/gXaTPD6Wg2DTZ вопросы по вертикальным дверям: - у меня они только один раз открываются, как сделать многократное открывание? - еще как сделать что-бы некоторые вертикальные двери открывались только по каналу? > Дюковскими эффекторами уже можно вообще не пользоваться, т.к. в ТСе есть свои более удобные вещи. нужно взорвать сектор SE13 каналу через "push триггер". Как? со светом не понял. нахожу выключатель, ставлю факелы в нужные сектора, но не работает свет... чего не хватает? читал, не помогло( Цитата:
(Отредактировано автором: 15 Апреля, 2015 - 19:49:34) |
428. [M210®] - 19 Апреля, 2015 - 17:24:07 | ||||
Цитата:
Просто не ставь по-умолчанию owner = 0, все овнеры не равные -1, расцениваются как однократное действие...на 1-1 в данном случае, owner = 0 стоит у кнопки zvel = 7, поменяй owner = -1 и все будет работать многократно. Цитата:
Может xvel на факеле? [P.S.] Нашел у себя в коде причину: owner = 0 опять же... Код:
Таким образом ты даешь факелу информацию о синхронизации с ID факелом, который прописан в owner, а т.к. у тебя там стоит 0, то факел пытается синхронизироваться с нулевым спрайтом, и т.к. не находит там информации о том, как ему моргать - не моргает Сделал карту пример с вертикальными дверями по каналу, и там же свет по каналу, свет включается при открытии двери. Цитата:
Используй для этих целей SE69/70 (смотря в какую сторону нужно "открывать" сектор) в extra нужно поставить 3, (бит 1 + бит 2 - выключение расчета плавного движения - ускорения и замедления) и поставит скорость в районе 20000-30000 единиц на mover_point...я ставлю на hitag, lotag остается равным 0, чтобы сектору не захотелось закрыться снова, т.е. хайтаг - скорость открытия сектора, лотаг - скорость закрытия сектора...это можно использовать и для других дверей. Еще заметь, на триггер поставил owner = 1 - тоже для предотвращения вторичного срабатывания, что приведет к "закрытию" сектора https://yadi.sk/d/AY06WDDAg6Kr2 Вот карта с примерами (Отредактировано автором: 19 Апреля, 2015 - 17:27:11) |
430. [M210®] - 21 Апреля, 2015 - 08:37:21 | |||
Цитата:
не совсем понял вопроса но вот карта пример с вращающимся сектором. https://yadi.sk/d/m5qVmLHRg8G9J Ставишь сектор и задаешь ему уникальный хайтаг...ставишь куда-нибудь SE64 - это будет центр вращения сектора, не обязательно должна находится внутри него...на SE64 ставишь хайтаг, равный хайтагу сектора для связи. Далее ставишь mover_point, на хайтаг порядковый номер движения, лотаг - скорость вращения...zvel на поинта - это направление вращения, 0 - по часовой стрелке, 1 - против часовой стрелке. Меняешь угол направления поинта до желаемого, сектор будет поворачиваться на угол, равный разнице между углом SE64 и поинтом На карте два поинта и 2 порядковых номера, сначала выполнится движение до угла с порядковым номером 1, при повторном нажатии на кнопку выполнится движение со скоростью 2 на порядковом номере 2...при еще одном нажатии на кнопку, сектор встанет в свое первоначальное положение, но со скоростью равной скоростью последнего действия. Цитата:
Ну картостроительством обычно занимался empy, ему лучше знать)) А вообще, в мапстере32 можно нажать на F2 и прослушать все звуки...на работе у меня нет колонок, но судя по названию, подойдет что-то типа 410, ExplodCM Цитата:
Ну уже неплохо))) От себя могу добавить, что когда я совмещал TROR сектора, я пытался искажать сектора-туннели, и оставлять нетронутыми сектора, у которых полностью общая стена с сектором TROR....т.е. в программу выводить диалог, типа, а не желаете исказить вот этот сектор? А сектор выбирать по такому принципу: Брать размер стены TROR и сравнивать с размером стены прилегающего сектора и по процентному соотношению выбирать наименьший - это скорее всего будет тоннель, который можно будет безболезненно исказить....только вот придется определять наибольшую стену TROR, а ее любят резать на кусочки. Видимо, придется делать проверку соседних стен, если у них угол между двумя точками такой же как у проверяемой, тогда это продолжение этой стены, а если угол отличается больше, чем на 25-30 градусов, значит это уже другая стена сектора |
Powered by ExBB 1.9.1 Original Style v1.5a2 created by Daemon.XP |