2012-02-21 106 views
0

我刚开始开发2D安卓游戏,就像打壁球一样。 情景是(有3个相同类型的错误在随机方向移动,当我按其中一个它消失等...)OpenGL ES中的坐标

我使用opengl es.Its一个简单的2D游戏和我的相机在操作中被固定在一个位置上。我知道我的手机屏幕坐标与我的opengl坐标不匹配,因此我必须自己组合/转换它们。

很抱歉,如果我的问题似乎是愚蠢的,我只是一个初学者....

问题1(或许是为了创造这个游戏中最重要的事情)。正如我告诉我有3个相同的对象(错误)。我怎样才能同时在opengl中跟踪每个人的坐标?

问题2.是否有任何一种将屏幕坐标与操作结合起来的简单方法?或者我应该自己做。

回答

0
  1. 你应该能够使用任何你喜欢的数据结构来跟踪每个对象的坐标。用最简单的术语来说,它可以是一个包含“世界空间”中的x和y坐标的结构。每次迭代,您都会根据速度和方向更新这些坐标,然后再次绘制对象。没有任何聪明的优化(如果只有少数对象,你可能不需要),你可以通过调用移动你的位置到对象的坐标并调用draw来做到这一点。

  2. 我相信在opengles中你必须自己跟踪这个。

在opengl中工作时,通常会记录“世界空间”中的坐标,它表示对象的概念世界坐标。然后,每个对象都可以拥有自己在“模型空间”中绘制自己的知识,该模型空间基本上假定对象以(0,0)为中心,并允许您指定腿部和头部位置以及与(0 ,0)。

最后一步是将坐标投影到“屏幕空间”,该屏幕空间映射到您的视口设置为(基本上是您的屏幕)。坐标之间的转换通常由模型视图和投影矩阵完成。模型视图矩阵将您的世界坐标转换为相机坐标(即相对于您的相机),投影矩阵将这些坐标转换为视口坐标(即您的屏幕坐标)。

这可能听起来很多,但一旦你得到了这些矩阵的一堆,它就成为第二天性。我确信有opengl modelview投影矩阵的教程。让我们知道你是否有更具体的问题...

+0

谢谢你的回答,它的信息很丰富。无论如何,我唯一不知道的是,如果他们随机移动,我将如何跟踪他们的位置。有没有办法立即检查我的对象在“世界空间”中的坐标是什么 – user1223513 2012-02-21 17:15:18

相关问题