2010-06-29 2 views
2

Можно ли проверить, был ли затронут только объект opengl на экране iphone? Я могу только понять это для всего экрана, но это не то, что я хочу :-(Touch Событие только с объектом в opengl

например, игра с монетами: у нас есть несколько монет в мире opengl. Если пользователь нажал одну монету, он получил очко. .. и так далее ;-)

это возможно?

благодаря маринке ;-)

ответ

0

Это очень похоже на обнаружение столкновений (но намного быстрее :). Найдите положение крана, а затем сравните его с положением монеты. Если они находятся в определенном радиусе, вы набрали монету. Я не уверен, что OpenGLES (но это очень маловероятно), что он предоставляет любой механизм.

1

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

У этого есть возможность сделать сортировку глубины для вас (например, если ваши монеты находятся друг на друге).

Пример кода здесь: http://gpwiki.org/index.php/OpenGL_Selection_Using_Unique_Color_IDs

+0

Мне нравится версия с цветом. У меня есть еще один вопрос ;-) Когда я использую текстуру для своей команды. Должен ли я выбирать цвет этого? то просто проверьте, есть ли у него цвет или нет? – Marinka