レイヤーにメニューが添付されています。縦に並んだメニューは4品。この方法でメニューを宣言します (警告! これは Javascript です。COCOS2D-Html5 を使用すると、フレームワークは iphone と同じです):
menuHeight = sumofMenuItemsHeight(CategoryMiniSpriteArray);
var newMenu = cc.Menu.create(CategoryMiniSpriteArray);
newMenu.setAnchorPoint(cc.PointMake(1,1));
newMenu.setPosition(cc.PointMake(
ScreenSize.width, ScreenSize.height - (menuHeight / 2)
));
newMenu.alignItemsVertically();
その後、プログラムのある時点で、画面に対するメニュー項目の絶対座標を取得したいと考えています。そして、私はこのコードを実行します:
var itemPosition = miniSprite.convertToWorldSpace(miniSprite.getPosition());
私は非常に奇妙な振る舞いをします。返される X 座標は、実際の位置と完全に一致します。このように配置しようとすると:
sprite.setPosition(itemPosition);
その座標 X への別のスプライトは、メニュー項目と完全に整列しています。問題は Y です。MenuItem ごとにシフトされた Y を取得しますが、それだけではありません。メニュー項目間の Y の差は、メニュー項目の高さの 2 倍です。そのため、Y がシフトされただけでなく、アイテム間でもシフトされました。私が間違っていることは何ですか?これは WorldSpace ではありません。