如何将精灵放在另一个更大的精灵的中心?

时间:2013-01-11 22:27:08

标签: java android andengine

我有一个80x80的PNG。

我还有另一个适合80x80 png的png。我不知道第二个png的确切宽度和高度是多少,但它会小于80x80。

我有一个方法,我使用png.setPosition(x,y)来设置png位置。我还有一个名为getX()getY()的方法,它允许我们检索第二个png的尺寸。

我想要做的是获得将第二个png放在80x80 png中心的x和y。

3 个答案:

答案 0 :(得分:4)

首先,找到你的大精灵的中间位置。

midX = img1.getPositionX()+img1.getWidth()/2;
midY = img1.getPositionY()+img1.getHeight()/2;

然后,到中间位置,删除第二张图像的一半尺寸:

midX-=img2.getWidth()/2;
midY-=img2.getHeight()/2;

并将该位置设置为小于80x80 png

img2.setPosition(midX,midY);

答案 1 :(得分:1)

我创建了一个纸牌游戏,我使用这种方法在牌组中设置一张牌:

card.setPositionX(deck.getPositionX() + ((deck.getWidth() - card.getWidth()) / 2));
card.setPositionY(deck.getPositionY() + ((deck.getHeight() - card.getHeight()) / 2));

答案 2 :(得分:0)

您可以将第二个图像附加到第一个图像(如果您使用的是AndEngine的AnchorCenter分支,则坐标系统从实体的左下角开始)

Image2的位置将参考image1。所以你可以这样做:

image1.attachChild(image2);
image2.setPosition(image1.getWidth()/2, image1.getHeight()/2);

使用此解决方案,您可以移动image1,image2将继续在image1

的中间