2015-10-25 52 views
0

我在這裏要做的是讓角色移動到一個位置,同時避開路徑上的障礙物。我試圖用這樣的:Sprite Kit中的最佳路徑選手移動

// node = character 
// position = position of touch 

[self.map enumerateChildNodesWithName:@"tile" usingBlock:^(SKNode * _Nonnull tileNode, BOOL * _Nonnull stop) {   
    if(round((SDistanceBetweenPoints(node.position, tileNode.position)) < 33)) { 
     if((SDistanceBetweenPoints(tileNode.position, position) < newDistance)&&((tileNode.position.x == position.x) || (tileNode.position.y == position.y))) { 
      newDistance = SDistanceBetweenPoints(tileNode.position, position); 
      moveToTouch = tileNode.position; 
     } 
    } 
}]; 

我與這個主要問題是,性格開始走右高達一半:

enter image description here

+0

SKSpriteNodes的座標基於Sprite的中心,而不是像UIViews那樣的左上角。考慮到這個考慮,你可以嘗試相同的代碼嗎? – Acoop

+0

好...這確實解決了我的問題!謝謝! (發佈爲答案)。 – HelloimDarius

回答

0

SKSpriteNodes的協調是基於的中心Sprite,而不是像UIViews那樣的左上角。牢記這一考慮,嘗試使用相同的代碼。