2016-04-18 17 views
-1

私はMake School's Hoppy Bunny tutorialです(ここに掲載されているチュートリアルの部分へのリンクです)。CCNodeには 'indexOf'というメンバーがありません

とき

for obstacle in Array(obstacles.reverse()) { 
    let obstacleWorldPosition = gamePhysicsNode.convertToWorldSpace(obstacle.position) 
    let obstacleScreenPosition = convertToNodeSpace(obstacleWorldPosition) 

    //obstacle moved past left side of screen? 
    if obstacleScreenPosition.x < (-obstacle.contentSize.width) { 
    obstacle.removeFromParent() 
    obstacles.removeAtIndex(obstacles.indexOf(obstacle)!) 

    //for each removed obstacle, add a new one 
    spawnNewObstacle() 
    } 
} 

obstacles.removeAtIndex(obstacles.indexOf(obstacle)!)私は問題を経験したが、私は何をしますか

[CCNode] does not have a member named 'indexOf' 

を言って私にエラーを与えましたか?

+0

チュートリアルへのリンクを含める必要があります。はい、人々はそれを検索することができますが、なぜ彼らは余分な仕事をするのですか?あなたの質問に対する回答を減らすだけです。 – ColGraff

+0

また、どのように変数 'obstacles'を宣言していますか?あなたの例にその行を含める必要があります。 – ColGraff

答えて

0

ここに記載されている情報から、ArrayindexOf()の使用を保留しているのを見ることはできませんが、投稿したコードはかなり畳み込まれています。基本的には障害物を除外していますが、代わりにfilter()メソッドを使用しないでください。ここでfilter()を使用するようにリライト同じコードは次のとおりです。

var numberRemoved = 0 

// filter iterates through the Collection and creates a new Collection that contains the items for which the closure returns true 
obstacles = obstacles.filter { obstacle in 
    let obstacleWorldPosition = gamePhysicsNode.convertToWorldSpace(obstacle.position) 
    let obstacleScreenPosition = convertToNodeSpace(obstacleWorldPosition) 

    // if the test in guard is false then perform the code block after else 
    // keep the obstacle by returning true 
    guard obstacleScreenPosition.x < (-obstacle.contentSize.width) else { return true } 

    // remove the obstacle 
    obstacle.removeFromParent() 
    numberRemoved += 1 // keep a count of removed 
    // remove the obstacle by returning false 
    return false 
} 

// add new ones to replace removed ones 
for _ in 0..<numberRemoved { 
    spawnNewObstacle() 
} 

は、このコードを試してみてください、それはあなたのエラーをなくすかもしれないし、それがタスクを実行するためのより良い方法です。

+0

ありがとう、私はこれを試してみます。私は非常に新しく、私が使用しているコードはMake Schoolのチュートリアルのものですが、半分は分かりません。完全な初心者のための無料のアプリケーション開発チュートリアルやコースをご存知ですか?ありがとう! –

+0

私は自分で試したことはありませんが、iTunes大学にはいくつかのコースがあると思います。私が知っているのは[StanfordのiOS 8 AppsをSwiftで開発する](https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099)ですが、他にもあります。 – ColGraff

関連する問題