|
3D-программирование Вопросы, касающиеся программирования 3D мира |
26.01.2008, 12:55
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
2D+3D
Здравствуйте! У меня вопрос:
Можно ли поворачивать меш в сторону картинки?
Ну допустим привязал я к мыши картинку, и мне надо чтобы
модель поворачивалась туда куда я двигаю мышь.
Можноли, знаете ли как?
Или вообще поворачивать не за картинкой а за мышью, чтобы
модель как бы следила за мышью
Мне это нужно для реализации управления глайдером как в механойдах.
Как поворачивать модель за картинкой я не понял, по этому поворачиваю за мешем.
Вот тут можете посмотреть исходняк управления того что вышло:
http://micronet.ifolder.ru/5109862
|
(Offline)
|
|
26.01.2008, 13:27
|
#2
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: 2D+3D
Можно из камеры производить пик на поверхность и уже поворачиваться глайдер в ту точку, но вообще тебе нужно с помощью команд MouseX(), MouseY(), MouseYSpeed(), MouseXSpeed() добиться такого эффекта. 1 способ)Значит проверяем расстояние от середины экрана до координат мыши, чем больше разница, тем сильнее поворачиваем глайдер в сторону мыши относительно центра экрана.
2 способ) Проверять скорость смещения мыши, чем выше скорость, тем сильнее поворачивать глайдер в нужную сторону.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.01.2008, 15:31
|
#3
|
Разработчик
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений (для 122 пользователей)
|
Ответ: 2D+3D
Blitzerg, чем тебя не устраивает поворот за 3Д обьектом? Я в игре использую 3Д мишень, меня вполне устраивает..
|
(Offline)
|
|
26.01.2008, 16:43
|
#4
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: 2D+3D
Ханон мне не надо ускорять поворот.
В механойдах 2 скорости поворота.
Первая в пределах границ, где работает стабилизатор поворота.
Вторая когда прицел вышел за границы, где стабилизатор поворота уже не работает.
Франк можно оставить систему и такую как щас у меня, она практически копирует
управление в механойдах. Но должен быть прицел в виде картинки на экране,
который перемещается за 3д навигатором глайдера. Незнаю как это сделать пока.
Потому и спрашиваю можно ли вместо поворота глайдера на 3д навигатор,
поворачивать его на 2д прицел.
Быть может кто знает тогда как заставить картинку на экране двигаться
за 3д объектом по экрану?
|
(Offline)
|
|
26.01.2008, 16:55
|
#5
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: 2D+3D
См команды
CameraProject
ProjectedX()
ProjectedY()
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.01.2008, 16:59
|
#6
|
Разработчик
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений (для 122 пользователей)
|
Ответ: 2D+3D
Вместо указателя(сфера или что там у тебя) используй пивот, а дальше
делаем имажу Midhandle картинка прицела и в цикле:
If EntityInView(пивот,cam) Then
CameraProject(cam,EntityX(пивот),EntityY(пивот),En tityZ(пивот))
DrawImage картинка прицела,ProjectedX#(),ProjectedY#()
EndIf
Но лучше использовать не картинку а спрайт вместо прицела, тогда легко регулировать размер прицела и прозрачность + нет зависимости от разрешения:
Global Crosshair=LoadSprite ( GLBMeshpath$+"crosshair.png",1)
при создании уровня(если камера создается по новой)
ch=CopyEntity (Crosshair,cam)
PositionEntity ch,0,0,40
-------------------------------------
Сорри, последнее это просто прицел по центру, чтобы спрайт следил за целеуказателем создай пивот прикрепленный к камете и крепи спрайт к нему, а дальше в цикле:
PointEntity пивот_к_которому_прикреплен_прицел,пивот_мишень
Последний раз редактировалось FrankH, 26.01.2008 в 17:11.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.01.2008, 18:49
|
#7
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: 2D+3D
перед глайдером чуть впереди выставь пивот, затем припарент его к самому глайдеру, это и будет как бы наш прицел фактически. Далее получаем экранные координаты этого пивота с помощью команд что привел tormoz, и размещаем картинку прицела на экране. Получаеться что у тебя прицел будет следить за направлением поворота глайдера.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.01.2008, 20:27
|
#8
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: 2D+3D
Блитзерг, в механоидах в пределах целеуказателя (поля в центре) скорость зависит от расстояния до центра, и за его пределами также, разница в том, что в пределах поля курсор передвигается к центру экрана, а уже за его пределами - нет. Изучай геймплей вминательнее.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
26.01.2008, 23:20
|
#9
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: 2D+3D
Сообщение от Ize'g0re
Блитзерг, в механоидах в пределах целеуказателя (поля в центре) скорость зависит от расстояния до центра, и за его пределами также, разница в том, что в пределах поля курсор передвигается к центру экрана, а уже за его пределами - нет. Изучай геймплей вминательнее.
|
Чёт не заметил. Надо бы поиграть подольше и всмотреться во всё.
Думаю систему управления ещё раз 5 переделаю.
P.S. Вот только ещё 2 уровня в рф онлайн прокачаю и займусь этим )
Последний раз редактировалось Crystal, 26.01.2008 в 23:27.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:11.
|