Правельно распределить
Люди! Может кто знает где информацию почитать или может сам кто-нить напишет как правильно распределять типы коллизий для мира в игре и вообще как правильно распределить объекты в игре к нужным типам. Например, чтобы не получилось так, чтобы человек мог лазить по стенкам, словно человек паук. Если кто не понял, могу более понятно написать))))
|
Ответ: Правельно распределить
чтобы человек не лазил постенкам можно написать простенький код, типо:
colY# = CollisionY(player, n) - EntityY( player, 1 ) If colY# < 0 then ; тут код чтобы человечек мог перемещатся EndIf Объясняю, CoY возвратит место в мировых координатах на коллизионной сфере где было столкновение, так можно определить есть ли земля под ногами у игрока. Вообще типы коллизий устанавливаются по необходимости нужным объектам, для всего что не будет контактировать с плеером, а только коллизится можно сделать тип StaticCol. |
Ответ: Правельно распределить
Hanon, false. все равно сможет лазить. например прыжог зажмет. или еще как изловчиться. какие еще есть предложения? (я не смог победить ету проблему пару лет назад).
|
Ответ: Правельно распределить
Это довольно сложно
Каждый решает по-своему. Например у меня две сферы коллизии - одна в ногах для гравитации, другая на корпус для стен. И жутко замученный код для совмещения всего этого. Для начинающего пойдет и примитивный с лазаньем по стенам. все равно он нифига не поймет, выложи я сейчас исходник (я порой сам не пойму что я там понаписывал :))))) |
Ответ: Правельно распределить
Цитата:
Код:
For n = 1 To CountCollisions( player(1)\entity ) |
Ответ: Правельно распределить
Юзаю PhysX, хотя и нативной коллизией не сложно реализовать.
В общем принцип таков: 1. Определяешь стоит ли персонаж (стоит ли на ногах). 2. Исходя из этого (True/False), уже реализуешь управление персонажем. Как вычислить стоит ли. Ну вопервых координата коллизии, должна быть в радиусе ног (можно тупо к координате Y прицепить). Второе, нужно определить вектор коллизии (CollisionN[X/Y/Z]). Перевести в градус и сделать ограничение. Если градус на 50-100% паралелен вертикали гравитации - то перс стоит, в обратном случае, он уже не стоит а скользит или т.п. Таким образом я делаю коллизию, выходит весьма шустро и без проблем нормально работает :) |
Ответ: Правельно распределить
2Moka довольно интересный подход.. Только я немного про вектор коллизии не понял, а именно каким образом определить. Если я правельно понимаю то нада определять вектор относительно места прыжка?
|
Ответ: Правельно распределить
вот именно это скольжение и вызвало у меня затруднения. Так как реакцию на коллизию оказывается нельзя менять после того как один раз задал, поэтому приходится писать свой алгоритм скольжения.
|
Ответ: Правельно распределить
H@NON! Я конеш не супер блитсер, но вот что я нашёл в справке по поводу Collisions. Разве это не смена коллизиии???
Код:
..... |
Ответ: Правельно распределить
неа. это смена текста ;)
вообщето просто вызываешь collisions с нужными параметрами и все. хотя, может есть какие то подводные камни. |
Ответ: Правельно распределить
Не советую это менять реалтайм.
В общем, перебираешь каждый цикл, все соприкосновения, и проверяешь их, если хоть один подходит по параметрам (градус соприкосновения и позиция в области ног), тогда перс уже стоит. Юзай функцию DebugLog и Stop, чтобы можно было вывести некоторые параметры и остановить программу. |
Ответ: Правельно распределить
непонимаю, у меня в проекте смена коллизий не происходила...
|
Ответ: Правельно распределить
люди, все гораздо проще! предложу очень тупой, но очень действенный способ... просто, юзаем два типа... один для стен, другой для пола... и все!
|
Ответ: Правельно распределить
avel, не очень хороший варриант :)
Если у тебя сложная форма, тогда нада заморачиватся моделлеру, разбивая на части.. |
Re: Ответ: Правельно распределить
Цитата:
|
Часовой пояс GMT +4, время: 15:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot