2010-11-09 3 views
1

Я разрабатываю приложение для Android с OpenGL и JNI (все материалы OpenGL находятся в коде C).Перемещение объектов OpenGL с пальцами

Представьте, что я нарисовал куб. Я хочу, чтобы этот пользователь мог нажать пальцем по кубу и может вращать куб и перемещать его по экрану.

Есть ли способ сделать это?

Как назначить прослушиватель событий касанию и переместить события только тогда, когда пользователь коснется куба?

UPDATE
Я хочу что-то вроде этого:

Rotate cube with fingers

Спасибо.

+0

Почему вы делаете это в C? Я не думаю, что именно так вы должны использовать opengl libs – Falmarri

+0

C быстрее, чем Java, и мне нужно использовать C. Потому что это требование приложения. – VansFannel

+0

C - требование приложения. Я не оптимизирую, я следую требованиям приложений. – VansFannel

ответ

1

Это называется «сбор» в 3d-ville ... Существует множество учебных пособий по теме, плавающих сюда и yon. На StackOverflow есть еще один вопрос (без JNI spin).

Кроме того, проверьте this google IO video на разработку игр для Android, чтобы узнать, почему ваш подход не может быть быстрее, чем чистая Java ... Это зависит.

Оказалось, что вызовы JNI являются довольно дорогостоящими, поэтому рендеринг на основе JNI может оказаться медленнее, чем чистый-java, если вы не очень внимательны. YM Will V.

Я уверен, что вам придется прислушиваться ко всем касаниям, а затем изменять поведение, основанное на том, что касается. Я предполагаю, что вы можете вычислить ограничивающий прямоугольник вашего куба на экране, а затем обезьяну с вашим слушателем в каждом кадре (или каждый раз, когда он будет двигаться), но я серьезно сомневаюсь, что это будет самый эффективный курс. Слушайте все касания, реагируйте соответствующим образом.

Смежные вопросы