我在这里尝试做的是让角色在避开路径障碍的同时移动到一个位置。我试着用这样的东西:
// 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;
}
}
}];
我的主要问题是角色开始向上走一半:
答案 0 :(得分:0)
SKSpriteNodes的协调基于Sprite的中心,而不是像UIViews那样的左上角。考虑到这一点,请尝试相同的代码。