![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 25
|
Создал недавно простенький 3d движок. Теперь хочу разработать с его использованием простенькую 3d игру: Ходишь человечком по лабиринту, стреляешь во врагов молниями, ищешь выход. Но есть проблема: персонаж и камера должны вращаться мышью(как в нормальных играх), но когда мышь достигнет края экрана, то и вращение перестанет происходить! Что делать???
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
ппц, мне это снится или этот пост написал человек, который создал простенький 3d движок?
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 25
|
А что такого особенного? Вращение должно происходить в каждую из сторон сколько угодно, а если просто скрыть указатель мыши и отслеживать MOUSE_MOVE, то когда мышь достигнет конца экрана, вращение закончится! Вот в этом и проблема!
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Что делать - придумать способ управления, учитывающий возможность выхода указателя мыши за пределы окна. Больше ничего не сделать.
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 25
|
Цитата:
1) Ось z направлена вертикально вверх, x - вглубь экрана, y - справо налево. Да, не очень по стандартному. 2) Отображение графики идёт как в AS 3.0, то есть создаём контейнер, в него можем добавить другой контейнер, в него парочку треугольников, а во время present() все добавленные в иерархию фигуры отображаются с учётом преобразований родительских контейнеров. 3) Писал без матриц, руководствуясь собственным воображением. Что бы повернуть объект вокруг оси z, устанавливаем контейнеру нужное значение horizontalRotation, для дополнительного поворота - verticalRotation. 4) Добавил объект четырёхугольник. Но к сожалению, из-за низкой скорости работы ActionScript 3.0 с массивами, мне не удалось организовать z-буфер: при наличии на сцене 6 треугольников(полукуб(1 треугольник на сторону)) сцена жутко тормозила, поэтому я использовал алгоритм художника. Мне кстати понравился способ с зажиманием мыши. И встречный вопрос перемещать мышь Flash Playerом нельзя, а Adobe AIRом? Можно ли как-нибудь отловить нажатие клавиш джойстика(вида, как у PS), хотя бы в AIRе. Последний раз редактировалось nns2009; 20.03.2010 в 00:37. Причина: Забыл сказать |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
мышку перемещать средствами флэша нельзя. Делают либо клавиатурными стрелками кручение, либо мышкой так, чтобы при повороте от начала экрана до конца, камера сделала как минимум пововорот на 360 градусов или даже больше. Еще вариант - крутить зажимая мышь: зажал и тащишь - поворачивается, как уперся в предел экрана - отжимаешь и перемещаешь мышь, снова зажимаешь и поворачиваешься, и т.д
|
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
Маловероятно, это все таки небезопасно давать программе мышку перемещать. Если речь идет об exe оболочке для винды, то предлагаю посмотреть в сторону C#. Им без проблем можно отобразить флэш контент, и мышку он умеет перемещать + с ним можно связать флэшку через ExternalInterface. Т.е можно из самой флэхи вызывать Сишарповские функции, по-моему вариант неплохой. Тогда и зажимать мышь не нужно будет
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 25
|
Цитата:
Выложил два примера: разноцветный куб, и одноцветный куб(за счёт примитивного освещения он более-менее объёмный). Первые три ползунка - оси x,y,z, 4-ый и 5-ый - horizontalRotation и verticalRotation. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|