|
3D-программирование Вопросы, касающиеся программирования 3D мира |
23.04.2006, 23:06
|
#1
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
У меня есть спрайт света,когда я его ставлю в угол,то он у меня обрезается полигонами стен. Делал с помощью EntityOrder,но спрайт становится видно отовсюду...хоть за пятьдесят стен. Короче, мне нужно стобы спрайт не был обрезанным возле стен.
Помогите плиз мне решить эту проблему.
|
(Offline)
|
|
23.04.2006, 23:42
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Никак. Твоя вводная обрезает все адекватные варианты решения =/
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
24.04.2006, 00:15
|
#3
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Даже с помощью Pick не получится?
|
(Offline)
|
|
24.04.2006, 02:06
|
#4
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
If EntityVisible(sprite)
EntityOrder sprite,-1
Else
EntityOrder sprite,0
EndIf
Типа так
__________________
|
(Offline)
|
|
24.04.2006, 02:15
|
#5
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
а с EntityInView так-же не получится?
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
24.04.2006, 05:34
|
#6
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Низя.
EntityInView не показывает, загорожен ли объект уровнем.
__________________
|
(Offline)
|
|
24.04.2006, 14:09
|
#7
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Спасибо, Tormoz !
Все прекрасно работает !
|
(Offline)
|
|
24.04.2006, 15:29
|
#8
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Только вот когда загораживаю спрайт другими объектами (рукой,как показано на скриншоте), его становится видно. Это нельзя исправить? Даже ничего в голову не приходит.
|
(Offline)
|
|
24.04.2006, 16:13
|
#9
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Поставь на руки пицкмоде.
Тогда визибл не будет "видеть" спрайт сквозь нее и отключит ордер
поиграй с радиусом спрайта
EntityRadius p_spr,rad#; радиус центрального огня
EntityPickMode ruka_c_pistolem,2
.....
If EntityVisible(cam,p_spr)
*EntityOrder p_spr,-1
Else
*EntityOrder p_spr,0
EndIf
__________________
|
(Offline)
|
|
24.04.2006, 17:54
|
#10
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Все равно не скрывается, я думаю дело или в радиусе спрайта,или в загрузке модели пистолета с флагом Anim(но это врядли) .
Вот код создания спрайта:
Dim lih(2)
For li=1 To 2
lih(li)=LoadSprite ("sprites\light02.png",1)
ScaleSprite lih(li),11,11
EntityRadius lih(li),1;радиус выбирал рандомно
Next
|
(Offline)
|
|
24.04.2006, 19:39
|
#11
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Во первых:
перебери все чилды аним_меша и назнач пицкмоде, или по имени руки и пистолета найди финдчилдом.
Во-вторых никакого рандома.
создай сферу в месте спрайта и определись с размером радиуса. Сфера для масштаба. по умолчанию у нее радиус 1
__________________
|
(Offline)
|
|
24.04.2006, 20:46
|
#12
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
А перебирать чилды командой GetChild ? Если да, то что надо поставить под словом(в хелпе) index?
GetChild (entity, index)
p.s. Прошу прощения за такие глупые вопросы .
|
(Offline)
|
|
24.04.2006, 21:03
|
#13
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
цикл по I от 1 до CountChildren ( entity ) и в нем GetChild (entity,I)
index это порядковый номер объекта (ребенка).
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
24.04.2006, 21:29
|
#14
|
Оператор ЭВМ
Регистрация: 14.01.2006
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Тоесть:
For i=1 To CountChildren(entity)
ch=GetChild(entity,i)
Next
Я так понял? Или что-то упустил?
|
(Offline)
|
|
24.04.2006, 23:24
|
#15
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
Originally posted by HorNeS@24.4.2006, 18:29
Я так понял? Или что-то упустил?
|
угу, а что? не работает?
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:55.
|