Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 14.03.2010, 17:38   #1
Black-Sparkle
AnyKey`щик
 
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений
(для 0 пользователей)
Мышка и 3Д объект

Здравствуйтесь...

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

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

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

Думаю, должно быть похоже на то, в каком месте кликаешь в том и появляеться..
CreateObject_1(PickedX#(),PickedY#()+5,PickedZ#()) 
вот так же, чтоб и передвигался в реальном времени куда показывает мышка.



Примеров нигде не нашел.
За ранее спасибо
(Offline)
 
Ответить с цитированием
Старый 14.03.2010, 22:05   #2
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Мышка и 3Д объект

Моя жалкая теория: Если мышь ползет только вверх-вниз (XSpeed=0) то двигать обэкт соответственно....А вот с другими осями проблемней - думаю, нужно получить угол поворота камеры, посчиаить, под каким углом должно быть перемещение мышки(чтоб по осям попадало), и сравнивать уже собствено движение мышки - и двигать по осям.
ЗЫЖ стопудов никто не понял
ЗЫ.Ы: А на деле довольно мудрая задача...
(Offline)
 
Ответить с цитированием
Старый 14.03.2010, 22:22   #3
Black-Sparkle
AnyKey`щик
 
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Мышка и 3Д объект

хмм... Благодарю...
попробую так и сделать=)

кстате...
а можно узнать координаты точки торейна куда показывает мышка.?
Только чтоб сразу, а не после клика.?
(Offline)
 
Ответить с цитированием
Старый 14.03.2010, 22:47   #4
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Мышка и 3Д объект

Клик - это простейшее условие (if MouseHit(1)...)
Можно делать хоть прямо в цикле - тока одно но: Блицевский террейн глючно тыкается, так что не советую
(Offline)
 
Ответить с цитированием
Старый 14.03.2010, 23:17   #5
Black-Sparkle
AnyKey`щик
 
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Мышка и 3Д объект

так мне не клик нужен а, чтобы сразу показывало координаты точки куда показывает мышка
(Offline)
 
Ответить с цитированием
Старый 15.03.2010, 00:41   #6
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Мышка и 3Д объект

Я типо предполагаю: (только надо знать на сколько увеличится высота при поднятии мыши )
Изображения
Тип файла: bmp Ересь богов.bmp (3.35 Мб, 789 просмотров)
(Offline)
 
Ответить с цитированием
Старый 15.03.2010, 01:03   #7
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Мышка и 3Д объект

St_AnGer - ересь богов дает ответы
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (15.03.2010)
Старый 15.03.2010, 01:19   #9
Black-Sparkle
AnyKey`щик
 
Регистрация: 14.03.2010
Сообщений: 8
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Мышка и 3Д объект

Но тут же опять только после клика...

мне по идее нужно сразу куда указывает курсор там и объект...
чтоб бъект сразу перемещался в месте с мышкой... но не совсем как в 3Д курсоре.
Igorian - думаю формула.. подойдет на время... )
если не получиться придеться другой способ искать)
(Offline)
 
Ответить с цитированием
Старый 17.03.2010, 17:59   #10
Black-Sparkle
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
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Мышка и 3Д объект

1. Двигать ты должен в апдейте каждый цикл! ты создаш куб 1 раз = 1 раз двигаешь
2. ты должен писать
FreeEntity p\Entity : Delete p
3. Никак
(Offline)
 
Ответить с цитированием
Старый 17.03.2010, 18:35   #12
Black-Sparkle
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
Black-Sparkle
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
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Мышка и 3Д объект

ЗЫ.Ы: А на деле довольно мудрая задача...
вот недавно доводилось принять участие в работе по созданию гизмо (по типу похожего на 3д макс (ну там перемещений, поворот и скейлинг) ) !! ну эт просто ад !!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (18.03.2010)
Старый 17.03.2010, 22:33   #15
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Мышка и 3Д объект

Ты удаляешь объект но не дуаляешь элемент! Допустим у тебя элемент с номеро 17. У него есть модель ты ее удалил. Идет перебор 1...2..3..17! смотрим 17 двигаем его модель... ой! ее нет = Ошибку в студию! ты должен удалять элемент что бы он больше не входил в перебор.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Black-Sparkle (18.03.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com