 |
3D-программирование Вопросы, касающиеся программирования 3D мира |
13.10.2007, 17:09
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Прибить гвоздями, либо приварить?
Здравствуйте уважаемые блитз девелоперы!
Передомной встала одна очень сильная проблема.
Я незнаю как намертово скрепить несколько объектов между собой.
Короче есть 2 сферы, вторая привязана к первой, у обоих коллизии с объектами. Допустим та, что сверху врезается во чтото а та, что снизу не во что не врезается. В итоге получается верхняя сфера стоит на месте, а нижняя уезжяет. Так вот как скрепить объекты таким образом, чтобы при застревании одного из них второй какбы тоже застревал. Ну, чтоб они работали как один меш целый.
|
(Offline)
|
|
13.10.2007, 17:13
|
#2
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Прибить гвоздями, либо приварить?
EntityParent entity, parent[, global]
Parameters
entity - entity handle
parent - parent entity handle
global (optional) - true for the child entity to retain its global position and orientation. Defaults to true.
Description
Attaches an entity to a parent.
Parent may be 0, in which case the entity will have no parent.
|
(Offline)
|
|
13.10.2007, 18:13
|
#3
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Прибить гвоздями, либо приварить?
EntityParent entity,parent[,global]
Параметры
entity - указатель объекта
parent - объект, к которому будет привязка (родительский)
global (не обязательно) - true - чтобы сохранить глобальную позицию и ориентацию привязанного объекта (по умолчанию).
Описание
Привязывает один объект к другому.
Если значение parent=0, то объект, наоборот, отвязывается от других объектов и становится самостоятельным.
__________________________________________
AddMesh source_mesh,dest_mesh
Параметры
source_mesh - исходный объект
dest_mesh - объект, к которому прикрепляем первый
Описание
Добавляет исходный объект(mesh) к другому объекту.
AddMesh работает лучше всего с объектами, к которым были применены соответствующие команды для работы с mesh-ами.
Так, если Вы хотите изменить объект перед добавлением его к другому объекту, удостоверьтесь, что Вы используете ScaleMesh, PositionMesh, PaintMesh и т.д, а не ScaleEntity, PositionEntity, EntityTexture и т.д.
Однако, помните, что при использовании команд типа RotateMesh особенность состоит в том, что они работают в глобальных координатах с центром 0,0,0. Поэтому масштабируйте и вращайте mesh перед его позиционированием, иначе ваш объект может оказаться в неожиданных координатах. Кроме того, после использования AddMesh, координаты нового целостного объекта будут установлены в 0,0,0.
После использования AddMesh, оригинал source_mesh будет все еще существовать, поэтому используйте FreeEntity, чтобы удалить его, если он больше не нужен.
|
(Offline)
|
|
13.10.2007, 18:13
|
#4
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: Прибить гвоздями, либо приварить?
AddMesh
|
(Offline)
|
|
13.10.2007, 18:25
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Прибить гвоздями, либо приварить?
AddMesh
EntityRadius задавай оба.
Будет очень быстрый фейк.
|
(Offline)
|
|
13.10.2007, 18:36
|
#6
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Позиционируй в цикле объекты относительно того который сместился при коллизии.
__________________
|
(Offline)
|
|
13.10.2007, 18:43
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Прибить гвоздями, либо приварить?
tormoz, увы может не прокатить, потомучто объект может быть смещен в препятствие.
|
(Offline)
|
|
14.10.2007, 06:28
|
#8
|
|
Re: Прибить гвоздями, либо приварить?
Открываю девятую банку пива, и смотрю на это всё.
Реально не всё понял.
Мне можно пример написать?
Ну какраз допустим пример по двум сферам.
|
|
|
14.10.2007, 14:01
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Ну примерно так:
car=createsphere()
car2=createsphere()
positionmesh car2,-0.5,0,0
positionmesh car,0.5,0,0
addmesh car2,car
freeentity car2
entityradius car,1.5,1
|
(Offline)
|
|
28.10.2007, 22:55
|
#10
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Вопщем не работает нифига.
И ещё 1 глюк с коллизией. Если ставлю объекту коллизию с двумя разными объектами
Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3
то почемуто TypeTehnika,TypeEarth,2,3 начинает работать как 2,1
а если оставляю коллизию с одни объектом
Collisions TypeTehnika,TypeEarth,2,3
то так и коллизится как надо 2,3
чё за баг?
|
(Offline)
|
|
29.10.2007, 22:15
|
#11
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Если никто не скажет мне в чём причины этих багов,
я брошу этот блитц к чёртовой матери.
Как ни сяду прогить замечаю - Баг на баге!
|
(Offline)
|
|
29.10.2007, 22:21
|
#12
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Сообщение от Blitzerg
Как ни сяду прогить замечаю - Баг на баге!
|
для того чтоб небыло Багов существует ДеБаг, это так для сведенья. А по теме, прослеживается оч.интересная причинно-следствееная связь.
причина: Как ни сяду прогить... следствие: Баг на баге! надо что-то менять причину или следствие? это уже зависит от тебя. 
|
(Offline)
|
|
29.10.2007, 22:38
|
#13
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Говоря баг на баге я говорю о коде без ошибок, в котором происходят баги.
Вопщем написано элементарно, верно и без ошибок, а портаки присутствуют.
Восновном в блитце глюки с коллизией.
Наверно надо прекручивать физикс...
Вот был например простой код, при коллизии с одним объектом менять локацию в игре, при коллизии с другим останавливаться.
Так вот при коллизии с первым действительно менялась локация, а при коллизии с вторыи объект останавливался, но!
Иногда при коллизии с вторым тоже менялась локация, хотя у всех объектов разные типы, и смена локаций при коллизии со вторым в коде вообще нигде не прописана.
Вот такие портаки.
Щас вот происходит фантастический глюк описаный в 10 посте.
|
(Offline)
|
|
29.10.2007, 22:50
|
#14
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Blitzerg, если код без ошибок это означает что у кодера руки не от "туда".
|
(Offline)
|
|
29.10.2007, 23:07
|
#15
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Прибить гвоздями, либо приварить?
Вот тока мока ненадо меня криворуким обзывать ладно?
Код и сам перепроверял, и другие.
Всё верно написано, но баги вылазят.
Меня эта коллизия добивает...
Вот ты сам мне скажи как функция может делать то, что в ней вообще не прописано?
А хрен его знает как.. Вот это и есть баг.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:46.
|