CCSprite
在屏幕上定位的奇怪行为。
场景很简单:在触摸时更改精灵位置(在屏幕上拖动项目)。
private void HandleInput(List<CCTouch> arg1, CCEvent arg2)
{
base.Position = arg1.Last().LocationOnScreen;
}
将base.Position
设置为LocationOnScreen
后,它就会消失。
注意: cocossharp
是着名框架的c#端口,其结构和实现与cocos2d-x
非常相似,因此添加了此标记。
任何帮助表示感谢。
答案 0 :(得分:2)
在cocos2d-x中,节点相对于其父节点内容区域定位。
通常,要使用触摸派生(世界空间)坐标在cocos2d-x中定位精灵,您将在父级上使用convertToNodeSpace方法。
在c ++中因为cocos2d-x:
void setSpritePositionWhenTouched(Node* sprite, const Vec2& touchPos)
{
auto parent = sprite->getParent();
auto pos = parent->convertToNodeSpace(touchPos);
sprite->setPosition(pos);
}