|
3D-программирование Вопросы, касающиеся программирования 3D мира |
14.03.2010, 17:38
|
#1
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Мышка и 3Д объект
Здравствуйтесь...
Как заставить двигаться объект возле мышки но во всех 6-х координатах?
Но не как в примере 3д курссора.
Чтоб объект находился радом с мышкой и если мышку поднимать, то объект либо передвигаеться по Z координ. либо У.
Думаю, должно быть похоже на то, в каком месте кликаешь в том и появляеться..
CreateObject_1(PickedX#(),PickedY#()+5,PickedZ#())
вот так же, чтоб и передвигался в реальном времени куда показывает мышка.
Примеров нигде не нашел.
За ранее спасибо
|
(Offline)
|
|
14.03.2010, 22:05
|
#2
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Мышка и 3Д объект
Моя жалкая теория: Если мышь ползет только вверх-вниз (XSpeed=0) то двигать обэкт соответственно....А вот с другими осями проблемней - думаю, нужно получить угол поворота камеры, посчиаить, под каким углом должно быть перемещение мышки(чтоб по осям попадало), и сравнивать уже собствено движение мышки - и двигать по осям.
ЗЫЖ стопудов никто не понял
ЗЫ.Ы: А на деле довольно мудрая задача...
|
(Offline)
|
|
14.03.2010, 22:22
|
#3
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 3Д объект
хмм... Благодарю...
попробую так и сделать=)
кстате...
а можно узнать координаты точки торейна куда показывает мышка.?
Только чтоб сразу, а не после клика.?
|
(Offline)
|
|
14.03.2010, 22:47
|
#4
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Мышка и 3Д объект
Клик - это простейшее условие (if MouseHit(1)...)
Можно делать хоть прямо в цикле - тока одно но: Блицевский террейн глючно тыкается, так что не советую
|
(Offline)
|
|
14.03.2010, 23:17
|
#5
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 3Д объект
так мне не клик нужен а, чтобы сразу показывало координаты точки куда показывает мышка
|
(Offline)
|
|
15.03.2010, 00:41
|
#6
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Мышка и 3Д объект
Я типо предполагаю: (только надо знать на сколько увеличится высота при поднятии мыши )
|
(Offline)
|
|
15.03.2010, 01:03
|
#7
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Мышка и 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
Что есть что в ней - думаю не составит труда разобраться.
Может быть это чем то тебе поможет.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
15.03.2010, 01:05
|
#8
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Мышка и 3Д объект
St_AnGer - ересь богов дает ответы
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.03.2010, 01:19
|
#9
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 3Д объект
Но тут же опять только после клика...
мне по идее нужно сразу куда указывает курсор там и объект...
чтоб бъект сразу перемещался в месте с мышкой... но не совсем как в 3Д курсоре.
Igorian - думаю формула.. подойдет на время... )
если не получиться придеться другой способ искать)
|
(Offline)
|
|
17.03.2010, 17:59
|
#10
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 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 это скорость
************************************************** ****
Седущий вопрос =)
Наведя мышкой на объект возле курсора пишеться имя объекта... но если удалить объект указанный мышкой то вылазит ошибка, что нету чье имя выводить... но не должно быть так... все равно есть что выводить даже если объект удалиться.. к примеру имя террайна..
Text MouseX()+15,MouseY(),""+EntityName(PickedEntity())
....и еще как включить курсор в полноэкранном режиме....
Благодарю)
|
(Offline)
|
|
17.03.2010, 18:04
|
#11
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Мышка и 3Д объект
1. Двигать ты должен в апдейте каждый цикл! ты создаш куб 1 раз = 1 раз двигаешь
2. ты должен писать
FreeEntity p\Entity : Delete p
|
3. Никак
|
(Offline)
|
|
17.03.2010, 18:35
|
#12
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 3Д объект
Сообщение от Igorian
1. Двигать ты должен в апдейте каждый цикл! ты создаш куб 1 раз = 1 раз двигаешь
2. ты должен писать
3. Никак
|
1. По подробнее пожалуйсто.. апдате имееться в виду Updateworld? (хотя так уже делал)
2. Я удаляю объект тот на который указываю мышкой.
FreeEntity PickedEntity()
|
(Offline)
|
|
17.03.2010, 19:36
|
#13
|
AnyKey`щик
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Мышка и 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
|
(Offline)
|
|
17.03.2010, 21:05
|
#14
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Мышка и 3Д объект
ЗЫ.Ы: А на деле довольно мудрая задача...
|
вот недавно доводилось принять участие в работе по созданию гизмо (по типу похожего на 3д макс (ну там перемещений, поворот и скейлинг) ) !! ну эт просто ад !!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.03.2010, 22:33
|
#15
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Мышка и 3Д объект
Ты удаляешь объект но не дуаляешь элемент! Допустим у тебя элемент с номеро 17. У него есть модель ты ее удалил. Идет перебор 1...2..3..17! смотрим 17 двигаем его модель... ой! ее нет = Ошибку в студию! ты должен удалять элемент что бы он больше не входил в перебор.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:26.
|