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