forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Мышка и 3Д объект (http://forum.boolean.name/showthread.php?t=12186)

Black-Sparkle 14.03.2010 17:38

Мышка и 3Д объект
 
Здравствуйтесь...

Как заставить двигаться объект возле мышки но во всех 6-х координатах?

Но не как в примере 3д курссора.

Чтоб объект находился радом с мышкой и если мышку поднимать, то объект либо передвигаеться по Z координ. либо У.

Думаю, должно быть похоже на то, в каком месте кликаешь в том и появляеться..
PHP код:

CreateObject_1(PickedX#(),PickedY#()+5,PickedZ#()) 

вот так же, чтоб и передвигался в реальном времени куда показывает мышка.



Примеров нигде не нашел.
За ранее спасибо

Reizel 14.03.2010 22:05

Ответ: Мышка и 3Д объект
 
Моя жалкая теория: Если мышь ползет только вверх-вниз (XSpeed=0) то двигать обэкт соответственно....А вот с другими осями проблемней - думаю, нужно получить угол поворота камеры, посчиаить, под каким углом должно быть перемещение мышки(чтоб по осям попадало), и сравнивать уже собствено движение мышки - и двигать по осям.
ЗЫЖ стопудов никто не понял :)
ЗЫ.Ы: А на деле довольно мудрая задача...

Black-Sparkle 14.03.2010 22:22

Ответ: Мышка и 3Д объект
 
хмм... Благодарю...
попробую так и сделать=)

кстате...
а можно узнать координаты точки торейна куда показывает мышка.?
Только чтоб сразу, а не после клика.?

Reizel 14.03.2010 22:47

Ответ: Мышка и 3Д объект
 
Клик - это простейшее условие (if MouseHit(1)...)
Можно делать хоть прямо в цикле - тока одно но: Блицевский террейн глючно тыкается, так что не советую

Black-Sparkle 14.03.2010 23:17

Ответ: Мышка и 3Д объект
 
так мне не клик нужен а, чтобы сразу показывало координаты точки куда показывает мышка

is.SarCasm 15.03.2010 00:41

Ответ: Мышка и 3Д объект
 
Вложений: 1
Я типо предполагаю: (только надо знать на сколько увеличится высота при поднятии мыши )

St_AnGer 15.03.2010 01:03

Ответ: Мышка и 3Д объект
 
Эммм... Выдаю свою мысль (возможно глупую, но она всё таки пришла первой). AlignToVector может быть поможет? Видел где то как с использованием этой команды объект двигался в точку пикнутую мышкой. Смысл был такой - в точку пика (правда по клику мыши) перемещался пивот (любой свободный) и нужный объект просто плавно поворачивался на этот пивот через AlignToVector и двигался к нему. Вот, как то так.

З.ы. Вспомнил как выглядела функция:
Код:

Function PointToEntity( src, dest, softness# )
        Local dx# = EntityX( src ) - EntityX( dest )
        Local dy# = EntityY( src ) - EntityY( dest )
        Local dz# = EntityZ( src ) - EntityZ( dest )
        AlignToVector( src, -dx, -dy, -dz, 0, softness )
        MoveEntity src,0,0,1
End Function

Что есть что в ней - думаю не составит труда разобраться.

Может быть это чем то тебе поможет.

is.SarCasm 15.03.2010 01:05

Ответ: Мышка и 3Д объект
 
St_AnGer - ересь богов дает ответы

Black-Sparkle 15.03.2010 01:19

Ответ: Мышка и 3Д объект
 
Но тут же опять только после клика...

мне по идее нужно сразу куда указывает курсор там и объект...
чтоб бъект сразу перемещался в месте с мышкой... но не совсем как в 3Д курсоре.
Igorian - думаю формула.. подойдет на время... )
если не получиться придеться другой способ искать)

Black-Sparkle 17.03.2010 17:59

Ответ: Мышка и 3Д объект
 
Еще есть вопросики... хотя с предыдущими еще не разобрался...

Типовый объект у меня не перемещается...
Передвижение пишу в функцию создания этого объекта...

Но он вместо того, чтоб передвигаться со скоростью 5, он появляеться в указоном месте + 5 . и стоит.

В самой программе не могу присвоить ничего.. пишет "Переменная должна быть типом"...
как с этим бороться?
Вот кусочет кода

Код:

Function CreateObject_1(x#,y#,z#,p#,yw#,r#,sx#,sy#,sz#,grvy#)
        BOX.TObject0 = New TObject0
        BOX\entity=CreateCube()
        BOX\scl_x#=sx#
        BOX\scl_y#=sy#
        BOX\scl_z#=sz#
        BOX\pos_x#=x#
        BOX\pos_y#=y#
        BOX\pos_z#=z#
        BOX\rot_x#=p#
        BOX\rot_y#=yw#
        BOX\rot_z#=r#
        BOX\gravy_obj#=grvy#
        sernumb=BOX\entity
                ScaleEntity BOX\entity,BOX\scl_x#,BOX\scl_y#,BOX\scl_z#
                RotateEntity BOX\entity,BOX\rot_x#,BOX\rot_y#,BOX\rot_z#
                PositionEntity BOX\entity,BOX\pos_x,BOX\pos_y,BOX\pos_z
                MoveEntity BOX\entity,0,0,BOX\gravy_obj#

И создаем

Код:

CreateObject_1(PickedX#()+5,PickedY#()+5,PickedZ#(),0,0,0,5,5,5,20); цыфра 20 это скорость
************************************************** ****

Седущий вопрос =)

Наведя мышкой на объект возле курсора пишеться имя объекта... но если удалить объект указанный мышкой то вылазит ошибка, что нету чье имя выводить... но не должно быть так... все равно есть что выводить даже если объект удалиться.. к примеру имя террайна..

PHP код:

Text MouseX()+15,MouseY(),""+EntityName(PickedEntity()) 


....и еще как включить курсор в полноэкранном режиме....

Благодарю)

is.SarCasm 17.03.2010 18:04

Ответ: Мышка и 3Д объект
 
1. Двигать ты должен в апдейте каждый цикл! ты создаш куб 1 раз = 1 раз двигаешь
2. ты должен писать
Цитата:

FreeEntity p\Entity : Delete p
3. Никак

Black-Sparkle 17.03.2010 18:35

Ответ: Мышка и 3Д объект
 
Цитата:

Сообщение от Igorian (Сообщение 142157)
1. Двигать ты должен в апдейте каждый цикл! ты создаш куб 1 раз = 1 раз двигаешь
2. ты должен писать
3. Никак

1. По подробнее пожалуйсто.. апдате имееться в виду Updateworld? (хотя так уже делал)
2. Я удаляю объект тот на который указываю мышкой.
PHP код:

FreeEntity PickedEntity() 


Black-Sparkle 17.03.2010 19:36

Ответ: Мышка и 3Д объект
 
Разобрался с первым вопросом.. объект двигаеться... НО
В торой вопрос увеличился...

Теперь ошибка движения после удаления объекта...

Нечему двигаться когда удаляю объект(

Код:

For BOX.TObject0 = Each TObject0
                MoveEntity BOX\entity,0,0,.1
                Next

**********************

If KeyHit(211)=True  Then
                If PickedEntity()= Terrain  Then
                Else
                        FreeEntity PickedEntity()
                EndIf


IGR 17.03.2010 21:05

Ответ: Мышка и 3Д объект
 
Цитата:

ЗЫ.Ы: А на деле довольно мудрая задача...
вот недавно доводилось принять участие в работе по созданию гизмо (по типу похожего на 3д макс (ну там перемещений, поворот и скейлинг) ) !! ну эт просто ад !! :)

is.SarCasm 17.03.2010 22:33

Ответ: Мышка и 3Д объект
 
Ты удаляешь объект но не дуаляешь элемент! Допустим у тебя элемент с номеро 17. У него есть модель ты ее удалил. Идет перебор 1...2..3..17! смотрим 17 двигаем его модель... ой! ее нет = Ошибку в студию! ты должен удалять элемент что бы он больше не входил в перебор.


Часовой пояс GMT +4, время: 09:44.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot