0

我目前正在使用 AndEngine GLES2 Center 设置场景,但我有以下疑问:我放置了一个背景,据我了解,使用这个新版本的 AndEngine,精灵的位置应该相对于左下角。

但是,如果我想将一个对象放置在位置 (x,y) 并且我在 FireWorks 等编辑器中看到这样的位置并在 Sprite 参数中使用它,它将不会出现在与出现在编辑器中相同的位置。如何知道放置物体的正确位置?

谢谢!

4

1 回答 1

6

每个 Sprite(实际上是实体)都有一个锚点。当您将 Sprite 放置在 Scene 位置 (x, y) 上时,这意味着您将 Sprite 的锚点固定在坐标 (x, y) 上。

在 AndEngine GLES2 和 GLES2-AC 分支中,锚点和坐标系都是不同的。

             |  GLES2                    |  GLES2-AnchorCenter
-------------+---------------------------+-------------------------------------
anchor point | At corner of entity.      | As branch name, at center of entity.
             | (left-top corner)         | (vertically and horizontally)
             |                           |
             |   anchor point            |
             |   |                       |
             |   V                       |      +-------------+
             |   X-------------+         |      |             |
             |   |             |         |      |      X <-------- anchor point
             |   | I am Entity |         |      | I am Entity |
             |   |             |         |      +-------------+
             |   +-------------+         |
             |                           |
-------------+---------------------------+-------------------------------------
coordinates  | Origin at left-top.       | Origin at left-bottom
             | move right -> x increase, | move right -> x increase,
             | move up -> y decrease.    | move up -> y increase.

注意:当实体旋转、倾斜和缩放时,也会使用锚点。所以,在 GLES2 分支中,当实体在旋转时,人们通常认为实体也在移动,但实际上并非如此,锚点始终固定在坐标 (x, y) 处。

于 2013-11-04T17:42:35.837 回答