2014-09-01 102 views
0

我有點困惑。我正試圖將一個CCSprite移動到另一個CCSprite的位置。我認爲這很簡單,但是CCSprite沒有正確定位。我有2個CCSprites:獲取CCSprite的位置

//Get Position of EMPTY SPRITE 
CCSprite *sprite = (CCSprite*)[self getChildByName:[NSString stringWithFormat:@"%d", kEMPTY] recursively:NO]; 

//GET DRAGGED SQUARE 
CCSprite *spriteMove = (CCSprite*)[self getChildByName:[NSString stringWithFormat:@"%d", DragStartSquare] recursively:NO]; 

然後我試圖做

CGPoint worldCoord = [sprite convertToWorldSpace: sprite.position]; 

我再與動畫它得到空的Sprite的位置(它實際上並不爲空):

id action1 = [CCActionMoveTo actionWithDuration:duration position:worldCoord]; 

這將精靈離開屏幕。我究竟做錯了什麼?

回答

0

你需要轉換回目標精靈的節點空間:

CGPoint targetNodeCoord = [spriteMove convertToNodeSpace: [sprite convertToWorldSpace: sprite.position]]; 
CCAction *action1 = [CCActionMoveTo actionWithDuration:duration position:targetNodeCoord]; 
+0

感謝。它更接近但仍然認爲它是錯誤的。它在上面。 – Allreadyhome 2014-09-01 16:35:57

+0

這兩個精靈的大小是否一樣?他們有相同的錨點嗎?此外,剛注意到精靈都是同一父節點的子節點,所以我認爲你可以完全跳過所有的座標變換。 – godel9 2014-09-01 16:50:34