2010-06-29 43 views
2

中的对象触摸事件是否可以检查iphone屏幕上的opengl对象是否被触摸?我只能算出整个屏幕,但那不是我想要的:-(只能用opengl

例如一个硬币游戏:我们在opengl世界有几个硬币,如果用户按下一个硬币,他会得到一个点。 ..等等;-)

这是可能的吗?

感谢马林卡;-)

回答

0

这是很多像冲突检测(但速度快了很多:)。找出水龙头的位置,然后将其与硬币的位置进行比较。如果他们在某个半径内,那么你已经挖掘了硬币。我不确定是否OpenGLES(但它不太可能)提供任何机制。

1

老派的挑选方法是将每个对象的特定颜色使用openGL场景渲染到每个帧的离屏缓冲区。找出用户点击的像素,并从缓冲区中获取该像素的颜色。简单的逆向贴图,将颜色映射到与其一起渲染的对象,并且知道点击了哪个对象(如果有)。

它确实有利于为您进行深度排序(例如,如果您的硬币在彼此之上)。

此处找到的代码示例:http://gpwiki.org/index.php/OpenGL_Selection_Using_Unique_Color_IDs

+0

我喜欢带颜色的版本。我还有一个问题;-)当我为我的队伍使用纹理时。我必须选择颜色吗?那么只是检查它是否有颜色或不正确? – Marinka 2010-06-30 06:52:38