0

こんにちは、チェッカーボード スタイルの SKtilemap で行われる小さなゲームに取り組んでいます。敵をスポーンするとき、それらが明るいタイルにのみ表示されるようにします (マップの上半分にのみ表示され、プレイヤー キャラクターには表示されません)。これを行うために、while ループを反復処理して、ランダムに選択された行と列の下にある tileGroup の種類を確認しようとしています。残念ながら、次のエラーが表示されます。

式の型 '(Int, Int) -> SKTileGroup?' コンテキストがないとあいまいです

この tileGroup チェックを別の関数に移動しようとすると、このエラーは発生しませんが、出力された tileGroup は次のようになります: SKTileGroup: tileGroup 名ではなく 0x600003ce3b10>。

ありがとうございました!

func setupEnemies() {
    // sizes enemy
    enemy = SKSpriteNode(imageNamed: "enemy")
    let height = enemy.size.height
    let scaleFactor = grid.tileSize.height / height
    enemy.setScale(scaleFactor)

    let numberOfRows = UInt32(grid.numberOfRows)
    let numberofCols = UInt32(grid.numberOfColumns)

    // initializes enemy position
    var randomRow = Int(arc4random_uniform(numberOfRows))
    var randomCol = Int(arc4random_uniform(numberofCols))

    // checks to make sure enemy position is in the top half of the board, is not located on the player character, and is only on light tiles.
    while randomRow < (numberOfRows / 2) || (randomRow == grid.tileRowIndex(fromPosition: knight.position) && randomCol == grid.tileColumnIndex(fromPosition: knight.position)) || (grid.tileGroup(atColumn: randomCol, row: randomRow) == "dirtDark Tile") {
        randomRow = Int(arc4random_uniform(numberOfRows))
        randomCol = Int(arc4random_uniform(numberofCols))


    }


    // add enemy to board.
    enemy.position = grid.centerOfTile(atColumn: randomCol, row: randomRow)
    addChild(enemy)

}
4

1 に答える 1