私は80x80のPNGを持っています。
80x80pngの中に収まる別のpngがあります。2番目のpngの正確な幅と高さはわかりませんが、80x80より小さくなります。
png.setPosition(x,y)
pngの位置を設定するために使用するメソッドがあります。また、というメソッドがgetX()
ありgetY()
、2番目のpngのディメンションを取得できるようになります。
私がやりたいのは、2番目のpngを80x80pngの中央に配置するxとyを取得することです。
まず、大きなスプライトの真ん中を見つけます。
midX = img1.getPositionX()+img1.getWidth()/2;
midY = img1.getPositionY()+img1.getHeight()/2;
次に、その中間位置に、2番目の画像の寸法の半分を削除します。
midX-=img2.getWidth()/2;
midY-=img2.getHeight()/2;
そして、その位置を80x80pngよりも小さい値に設定します
img2.setPosition(midX,midY);
カードゲームを作成し、この方法を使用してカードをデッキにセットしました。
card.setPositionX(deck.getPositionX() + ((deck.getWidth() - card.getWidth()) / 2));
card.setPositionY(deck.getPositionY() + ((deck.getHeight() - card.getHeight()) / 2));
2番目の画像を最初の画像に添付できます(AndEngineのAnchorCenterブランチを使用している場合、座標系はエンティティの左下隅から始まります)
Image2の位置は、image1を基準にしています。だからあなたはすることができます:
image1.attachChild(image2);
image2.setPosition(image1.getWidth()/2, image1.getHeight()/2);
このソリューションを使用すると、image1を移動でき、image2はimage1の途中で続行されます