2015-09-29 79 views
0

面臨CCSprite定位奇怪的行爲。 方案是簡單的:更改觸摸精靈位置(在屏幕上拖動的項目)。更改CCSprite位置導致從屏幕上消失在屏幕上

private void HandleInput(List<CCTouch> arg1, CCEvent arg2) 
{ 
    base.Position = arg1.Last().LocationOnScreen; 
} 

設置base.PositionLocationOnScreen它只是消失後。


注:cocossharp是著名框架的C#端口,並且是在其結構和實施cocos2d-x因此加入這個標籤十分相似。
讚賞任何幫助。

+0

您是否嘗試過記錄'arg1.Last()LocationOnScreen'?你的基地在哪裏? – musikov

+0

位置似乎是合理的(它指向可見屏幕內的座標)。 –

回答

2

在cocos2d-x個節點相對於他們的父母內容區域定位。

典型地,以定位用衍生的觸摸(世界空間)座標您將使用convertToNodeSpace方法上的父在cocos2d-X小精靈。

在C++,因爲cocos2d的-X:

void setSpritePositionWhenTouched(Node* sprite, const Vec2& touchPos) 
{ 
    auto parent = sprite->getParent(); 
    auto pos = parent->convertToNodeSpace(touchPos); 
    sprite->setPosition(pos); 
}