Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.03.2010, 22:20
nns2009 вне форума Посмотреть профиль Отправить личное сообщение для nns2009 Найти все сообщения от nns2009
  № 1  
Ответить с цитированием
nns2009

Регистрация: Mar 2010
Сообщений: 25
По умолчанию Вращение камеры

Создал недавно простенький 3d движок. Теперь хочу разработать с его использованием простенькую 3d игру: Ходишь человечком по лабиринту, стреляешь во врагов молниями, ищешь выход. Но есть проблема: персонаж и камера должны вращаться мышью(как в нормальных играх), но когда мышь достигнет края экрана, то и вращение перестанет происходить! Что делать???

Старый 18.03.2010, 22:39
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 2  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
ппц, мне это снится или этот пост написал человек, который создал простенький 3d движок?

Старый 19.03.2010, 00:16
nns2009 вне форума Посмотреть профиль Отправить личное сообщение для nns2009 Найти все сообщения от nns2009
  № 3  
Ответить с цитированием
nns2009

Регистрация: Mar 2010
Сообщений: 25
А что такого особенного? Вращение должно происходить в каждую из сторон сколько угодно, а если просто скрыть указатель мыши и отслеживать MOUSE_MOVE, то когда мышь достигнет конца экрана, вращение закончится! Вот в этом и проблема!

Старый 19.03.2010, 00:40
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Что делать - придумать способ управления, учитывающий возможность выхода указателя мыши за пределы окна. Больше ничего не сделать.

Старый 19.03.2010, 09:56
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 5  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Цитата:
Вот в этом и проблема!
вот мне интересно, вы не могли бы хотя бы в общих чертах рассказать каким способом вы разработали простенький 3d движок, а я в замен расскажу вам какой слушатель отвечает за вашу проблему?

Старый 19.03.2010, 14:23
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 6  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
мышку перемещать средствами флэша нельзя. Делают либо клавиатурными стрелками кручение, либо мышкой так, чтобы при повороте от начала экрана до конца, камера сделала как минимум пововорот на 360 градусов или даже больше. Еще вариант - крутить зажимая мышь: зажал и тащишь - поворачивается, как уперся в предел экрана - отжимаешь и перемещаешь мышь, снова зажимаешь и поворачиваешься, и т.д

Старый 20.03.2010, 00:30
nns2009 вне форума Посмотреть профиль Отправить личное сообщение для nns2009 Найти все сообщения от nns2009
  № 7  
Ответить с цитированием
nns2009

Регистрация: Mar 2010
Сообщений: 25
Цитата:
Сообщение от AlexDesinger Посмотреть сообщение
вот мне интересно, вы не могли бы хотя бы в общих чертах рассказать каким способом вы разработали простенький 3d движок, а я в замен расскажу вам какой слушатель отвечает за вашу проблему?
Главное направление моего движка не скорость и графика, а удобство использования, поэтому:
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. Причина: Забыл сказать
Старый 20.03.2010, 00:47
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 8  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
а можно демку посмотреть?

Старый 20.03.2010, 00:48
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 9  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
Маловероятно, это все таки небезопасно давать программе мышку перемещать. Если речь идет об exe оболочке для винды, то предлагаю посмотреть в сторону C#. Им без проблем можно отобразить флэш контент, и мышку он умеет перемещать + с ним можно связать флэшку через ExternalInterface. Т.е можно из самой флэхи вызывать Сишарповские функции, по-моему вариант неплохой. Тогда и зажимать мышь не нужно будет

Старый 20.03.2010, 00:56
nns2009 вне форума Посмотреть профиль Отправить личное сообщение для nns2009 Найти все сообщения от nns2009
  № 10  
Ответить с цитированием
nns2009

Регистрация: Mar 2010
Сообщений: 25
Цитата:
Сообщение от GentleFLASH Посмотреть сообщение
Маловероятно, это все таки небезопасно давать программе мышку перемещать.
Adobe AIR - это уже не интернет плагин, а полноценная платформа(как C# и .NET), так что думаю там это сделать можно.

Выложил два примера: разноцветный куб, и одноцветный куб(за счёт примитивного освещения он более-менее объёмный). Первые три ползунка - оси x,y,z, 4-ый и 5-ый - horizontalRotation и verticalRotation.
Вложения
Тип файла: rar Power 3D.rar (16.0 Кб, 116 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.