我目前正在使用 AndEngine GLES2 Center 设置场景,但我有以下疑问:我放置了一个背景,据我了解,使用这个新版本的 AndEngine,精灵的位置应该相对于左下角。
但是,如果我想将一个对象放置在位置 (x,y) 并且我在 FireWorks 等编辑器中看到这样的位置并在 Sprite 参数中使用它,它将不会出现在与出现在编辑器中相同的位置。如何知道放置物体的正确位置?
谢谢!
我目前正在使用 AndEngine GLES2 Center 设置场景,但我有以下疑问:我放置了一个背景,据我了解,使用这个新版本的 AndEngine,精灵的位置应该相对于左下角。
但是,如果我想将一个对象放置在位置 (x,y) 并且我在 FireWorks 等编辑器中看到这样的位置并在 Sprite 参数中使用它,它将不会出现在与出现在编辑器中相同的位置。如何知道放置物体的正确位置?
谢谢!
每个 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) 处。