[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Помогите с моделью (Сделать модель "кликабельной")
Помогите с моделью
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)
---------------------------------------------
Не хочу создавать новую тему, поэтому задам вопрос здесь.Как сделать со всех сторон небо, эффект будто ты находишься над облаками?

 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Помогите с моделью (Сделать модель "кликабельной")
  • Страница 1 из 1
  • 1
Поиск: