![]() |
Дубликаты дверей
Я создаю двери, которые при соприкосновении с игроком должны открываться, но так как дверей дофига, отдельно прописывать каждую не получится, как мне сделать дубликаты и добиться отдельного открытия дверей?
|
Ответ: Дубликаты дверей
Сделай список дверей, определи им свой тип столкновения. Каждой двери задай имя из списка с помощью Handle, при столкновении с типом дверей, читай имя обьекта и передавай функции обработки дверей. С помощью Object. находишь нужную запись в списке, выполняешь действия с дверью.
|
Ответ: Дубликаты дверей
|
Ответ: Дубликаты дверей
Спасибо большое :)
|
Ответ: Дубликаты дверей
Извиняюсь, конечно, я дибил редкостный, но всё-таки я не разобрался: TYPE, вроде бы, создаёт дубликаты, но я никак не пойму, как отследить их положение, а по HANDLE и OBJECT я не нашёл нормального хэлпа, помогите, если нетрудно...:SOS:
|
Ответ: Дубликаты дверей
эм и так :)
допусти у нас есть тип Код:
type players Код:
player.players=new players получаем хендл в пеменную Код:
myplayer=handle(player) Код:
pl.players=object.players(myplayer) -pl - экземпляр созданый по хендлу myplayer конечно как мне кажется объяснил слишком коряво :) но думаю поможет |
Ответ: Дубликаты дверей
Цитата:
При создании новой двери писать в них координаты. Когда понадобилось - читать оттуда координаты. Если у твоей двери есть модель (а скорее всего так и есть) то можешь создать Field для модели, а координаты её брать через EntityX, EntityY и EntityZ. Сложности object-handle я вообще не понял к чему тут. Можно же хранить ссылку на объект двери тупо в переменной: door.MyDoorType = new MyDoorType door\MySuperField = значение Вообще object-handle довольно редко юзается (в основном чтобы ускорить переборы списков) и не рекомендую забивать им себе голову пока не разберёшься с азами. |
Ответ: Дубликаты дверей
Вложений: 1
Вот простой урок про двери и взаимодействие с ними
Но лучше конечно научиться использовать TYPE |
Ответ: Дубликаты дверей
Цитата:
как написал АВТОМАТ начну с азов. Создадим тип для дверей Код:
Type doors Код:
door.doors = New doors ;создали новую пустую запись теперь как найти нужную запись(искать будем перебором) Код:
;contact - допустим это ссылка на дверь с которой столкнулись Еще советую почитать FAQ по B3D |
Ответ: Дубликаты дверей
Спасибо большое, буду пробовать разбираться :)
|
Ответ: Дубликаты дверей
Вот, что получилось:
Код:
Graphics3D 640,480 Что не так? |
Ответ: Дубликаты дверей
Ни все так просто как бы тебе казалось!
Вот те код, правда не мой, я тебе его подредактировал, чтоб ты смог разобраться! Но без коментов, думаю так поймешь! PHP код:
|
Ответ: Дубликаты дверей
Неправильно проверку коллизий делаешь вот тут
Код:
For i=0 To 3 Код:
Local door% = EntityCollided(player,t_block) Код:
if(door <> Null) |
Ответ: Дубликаты дверей
L-ee-X, я этот исходник в БлитзСкуле смотрел, уж очень он запутанный для новичка.
Жека, я всё написал, вот только он поднимает один и тот же блок: Код:
Graphics3D 640,480 |
Ответ: Дубликаты дверей
Я забыл тебе дописать проверку конкретной двери через сравнение door и ent, вот код подправленный (+ сдвинул камеру чтоб было видно шарик и делэй(20) чтоб притормозить фпс)
|
Часовой пояс GMT +4, время: 20:26. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot