0
我正在嘗試做一個基於回合的遊戲,並且每個敵人都應該找到一個玩家節點的路徑。我使用的是gameplaykit的尋路方式,每次敵人轉彎時,我都會確保從GKGridGraph中移除其他敵人(這樣敵方不會互相走路),後面我會添加相同的節點。GKGridGraph找不到路徑
NSMutableArray <GKGridGraphNode *> *walls = [NSMutableArray array];
for(SKNode *mapNode in enemies)
{
for(SKNode *node in mapNode.children)
{
if((node.position.x != enemy.position.x)||(node.position.y != enemy.position.y))
{
GKGridGraphNode *graphNode = [_NewGraph nodeAtGridPosition:
(vector_int2){(node.position.x-300)/70, (node.position.y-180)/70}];
[walls addObject:graphNode];
}
}
}
[_NewGraph removeNodes:walls];
GKGridGraphNode* GKenemyNode = [_NewGraph nodeAtGridPosition:(vector_int2)
{(enemy.position.x-300)/70, (enemy.position.y-180)/70}];
GKGridGraphNode* GKplayerNode = [_NewGraph nodeAtGridPosition:(vector_int2)
{(player.position.x-300)/70,(player.position.y-180)/70}];
NSArray<GKGridGraphNode *> *path = [_NewGraph findPathFromNode:GKenemyNode toNode:GKplayerNode];
[_NewGraph addNodes:walls];
如果我註釋掉行removeNodes和addNodes一切工作正常。
編輯:每次創建新的類對象可能會返回生成的GKGridGraph而不是重新分配相同的一個是否是個好主意?