Помогите с моделью
| |
Kornival | Дата: Пятница, 21.05.2010, 14:56 | Сообщение # 1 |
ученик
Группа: Пользователи
Сообщений: 83
Награды: 1
Репутация: 1
Статус: Offline
| Code Graphics3D 640,480 SetBuffer BackBuffer() Global name$ Global ent Global hero cam=CreateCamera() PositionEntity cam,0,0,-30 hero=LoadAnimMesh("hazar.b3d") ScaleEntity hero,10,10,10 EntityPickMode hero,2 NameEntity hero,"voin" While Not KeyDown(1)
If MouseDown(1)
ent=CameraPick(cam,MouseX(),MouseY()) If ent name=EntityName(ent) EndIf EndIf RenderWorld Text 12,10,name Flip Wend End По идее,если кликнуть по модели,в углу должно высветиться имя модели "voin", но ничего не происходит. Если поменять hero=LoadAnimMesh("hazar.b3d") на hero=LoadMesh("hazar.b3d") все работает нормально, но мне это не подходит. Подскажите пожалуйста что можно сделать.
Сообщение отредактировал Kornival - Пятница, 21.05.2010, 14:56 |
|
| |
turBO | Дата: Пятница, 21.05.2010, 19:38 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
| Насколько я помню, анимированные объекты не ловятся функцией CameraPick. Пользуйся новым обьектом с заданным EntityRadius, который перемещай в координаты hero, если не обязательно чёткое "попадание" курсором в "контуры" объекта hero.
If 2+2<>4 Then Restart
|
|
| |
Kornival | Дата: Пятница, 21.05.2010, 20:19 | Сообщение # 3 |
ученик
Группа: Пользователи
Сообщений: 83
Награды: 1
Репутация: 1
Статус: Offline
| четкое попадание курсором в контуры объекта hero как раз обязательно. Неужели ничего нельзя сделать?!
|
|
| |
Spidy | Дата: Пятница, 21.05.2010, 22:45 | Сообщение # 4 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| Можно. Чем тебе не вариант, предложенный turbo Вот тебе реализация, лови Quote Graphics3D 640,480,32,2 SetFont(LoadFont("Verdana",20)) SetBuffer BackBuffer() Global name$ Global ent Global hero cam=CreateCamera() PositionEntity cam,0,0,-50 hero_anim=LoadAnimMesh("car.3ds") hero_cube=CreateCube() EntityAlpha hero_cube,.2 PositionEntity hero_cube,0,6,0 ScaleEntity hero_cube,10,4,26 EntityPickMode hero_cube,2 NameEntity hero_cube,"You don't pick car, you pick alpha cube" While Not KeyDown(1) ent=CameraPick(cam,MouseX(),MouseY()) If ent name=EntityName(ent) Else name="" EndIf TurnEntity hero_anim,0,1,0 TurnEntity hero_cube,0,1,0 RenderWorld Text 150,10,name Flip Wend End Пример можно скачать по ЭТОЙ ссылке
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
Kornival | Дата: Понедельник, 24.05.2010, 13:37 | Сообщение # 5 |
ученик
Группа: Пользователи
Сообщений: 83
Награды: 1
Репутация: 1
Статус: Offline
| В этом примере даже если щелкнуть немного в сторону от машины появляется имя куба, а у меня hero модель человека и хотелось бы чтобы сообщение появлялось только тогда, когда я щелкаю по модели. Добавлено (22.05.2010, 06:19) --------------------------------------------- Мне просто надо чтобы программа знала когда я щелкаю по модели, фокусы с именем совсем не обязательны.Может есть другие способы реализовать это? Добавлено (22.05.2010, 21:51) --------------------------------------------- Неужели никак не сделать? Добавлено (24.05.2010, 13:37) --------------------------------------------- Люди, получается шутер на blitz3d не напишишь?
|
|
| |
turBO | Дата: Понедельник, 24.05.2010, 22:43 | Сообщение # 6 |
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
| Варианты решения есть - просто надо включить соображалку. Kornival, из твоего сообщения неясно для каких целей курсором попадать по модели героя... Зачастую стоит задача лишь коллизии героя с другими объектами и для этого достаточно предложенного варианта. Если курсор - цель для оружия, используют тот же импульс.
If 2+2<>4 Then Restart
|
|
| |
Kornival | Дата: Понедельник, 24.05.2010, 23:33 | Сообщение # 7 |
ученик
Группа: Пользователи
Сообщений: 83
Награды: 1
Репутация: 1
Статус: Offline
| курсор-цель для оружия, только я не понял слова "используют тот же импульс".Я включил всю свою соображалку, но ее хватило лишь на то чтобы создать еще одну модель(неанимированную), привязать ее к родительской модели(анимированной), скрыть командой entityalpha и "ловить" ее(неанимированную модель) с помошью команды camerapick.Но все равно это не лучший выход.Turbo, поясни пожалуйста свою мысль насчет "импульса" и помоги несчастному чайнику. Добавлено (24.05.2010, 23:29) --------------------------------------------- курсор-цель для оружия, только я не понял слова "используют тот же импульс".Я включил всю свою соображалку, но ее хватило лишь на то чтобы создать еще одну модель(неанимированную), привязать ее к родительской модели(анимированной), скрыть ее командой entityalpha и "ловить" (неанимированную модель) с помошью команды camerapick.Но все равно это не лучший выход.Turbo, поясни пожалуйста свою мысль насчет "импульса" и помоги несчастному чайнику. Добавлено (24.05.2010, 23:33) --------------------------------------------- на глюк с двумя сообщениями не обращайте внимания.
|
|
| |
turBO | Дата: Вторник, 25.05.2010, 16:30 | Сообщение # 8 |
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
| я имел ввиду импульс движка Physx - pxBodySetMyForce(body%, lx#, ly#, lz#) . Если физику прикручивать не хочется задай прямоугольник с EntityRadius с пропорциями модели. Code (...) hero_coll=CreateCone() ScaleEntity hero_coll,4,9,4;задать пропорции героя EntityAlpha hero_coll,0 type_hero=2 EntityType hero_coll,type_hero Collisions type_PATRON,type_hero,2,2 EntityPickMode hero_coll,3 ;куб (...)
If 2+2<>4 Then Restart
|
|
| |
Kornival | Дата: Вторник, 25.05.2010, 19:20 | Сообщение # 9 |
ученик
Группа: Пользователи
Сообщений: 83
Награды: 1
Репутация: 1
Статус: Offline
| Спасибо за помощ, я все понял. Turbo, а нормальный учебник по PhisyX'у есть, а то учиться на примерах не очень удобно. Добавлено (25.05.2010, 19:20) --------------------------------------------- Не хочу создавать новую тему, поэтому задам вопрос здесь.Как сделать со всех сторон небо, эффект будто ты находишься над облаками?
|
|
| |
|