我有一个附加到图层的菜单。在菜单中 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,甚至在项目之间转移了。我做错了什么?这不是世界空间。