![]() |
Проблема с дверями
Опять я к вам с вопросом: у меня в игре предусмотрена дверь, при столкновением с которой она двигается вниз.Я загружаю все это через csm-карту,но проблема в том, что если пишу
Код:
If EntityCollided(doren(id)\dos,user_type) Код:
If EntityCollided(user,door_type) помогите плиз с этим уже второй день мучаюсь! вот код загрузки дверей: Код:
Function RecurseSeek(ent) Код:
Function create_door(doors) Код:
Function update_door() |
Ответ: Проблема с дверями
Разбирать код сложновато. Но может просто придавать имя каждой двери NameEntity( entity, name$ ). А потом делать проверку на имя.
Ну типа того. Цитата:
Function update_door() не оптимизированная (не правильная считай). Не нужно в самой For id=1 To numd .. Next делать проверки. И лучше сменить всю систему загрузки, хранения и проверки дверей. ИМХО Function create_door(doors) мне не нравится. |
Ответ: Проблема с дверями
Вот, моджет поможет!
Там в какомто уроке (их 13) расказывается об дверях (код очень похожий с твоим)))) |
Ответ: Проблема с дверями
я уже там посмотрел, вроде все правильно, подскажите что тут не так!
|
Ответ: Проблема с дверями
Попробуй другие функции проверки на столкновение.
Я блитз уже позабыл, но помню что функций проверок на столкновение уйма! |
Ответ: Проблема с дверями
я уже вроде все попробовал, у меня уже кончились идеи...
|
Ответ: Проблема с дверями
Может не надо For door to door ..? Блитз же сам, кажется, прогоняется по объектам при EntityCollided. Главное потом словить NameEntity ~ (EntityName), или подобное.
|
Ответ: Проблема с дверями
Цитата:
|
Ответ: Проблема с дверями
Вот функция проверки пересечения двух мешей - MeshesIntersect(меш№1, меш№2)
|
Ответ: Проблема с дверями
С дверью можно элементарно проверять на расстояние по координатам. Игрок нажимает кнопку открытия, по координатам находишь ближайшую дверь и открываешь. Причем, вычислять квадратные корни не нужно. Расстояние_взаимодействия (так сказать) возводишь в квадрат умножением на само себя. Типа:
if r*r >= (doorX-persX)*(doorX-persX)+...+(doorZ-persZ)*(doorZ-persZ) then Это по центрам объектов (дверь и персонаж) считается. Оно конечно все вручную, но числогрызы все монструознее. Дверей там надо думать тоже не много. Да и код понятнее. Чего-то с блицевскими коллизиями у меня все время траблы. |
Ответ: Проблема с дверями
Цитата:
тип ты чего? Нелегче перебирать все двери, и проверять растояние EntityDistance ??? |
Ответ: Проблема с дверями
A entitydistance между какими точками объектов меряет? Всеми?
Ну и мне проще код из головы забить, чем лезть в help уточнять. З.Ы. к тому-же entitydistance выдает расстояние, значит, вычисляет квадратный корень. Довольно долгая функция. С другой стороны давненько я спецификации процессоров не смотрел, а мой метод дает потери на блицевском интерпретаторе. Тестировать надо, а лень. А с третей стороны, знает ли блиц, что бывают процессоры новее третьего пенька. |
Ответ: Проблема с дверями
Цитата:
Цитата:
|
Ответ: Проблема с дверями
Цитата:
|
Ответ: Проблема с дверями
Цитата:
1)В твоей функции ты вызываеш EntityX EntityY EntityZ, а в EntityDistance координаты беруца скорей всего прямо из матриц обекта, что как ты говориш Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 23:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot