あなたがwouldn
let coinStart = CGPoint(0,0)
coinPos = coinStart
for row in 0...2 { // Iterate over all rows
for column in 0...7 { // and all columns
if coinRow[row][column] == 1 { // Should there be a coin here?
putCoin(at: coinPos) // yes - draw one
}
coinPos.x += coin.width + coinHorizontalSeparation // next coin location
}
coinPos.y += coin.height + coinVerticalSeparation // Position to next row
coinPos.x = coinStart.x // Reset position to start of row
}
:
var coinRow = [[Int]]()
coinRow.append([0,1,1,1,1,1,1,0]) // '0' means 'No coin here'
coinRow.append([1,1,1,1,1,1,1,1]) // '1' means 'put coin here'
coinRow.append([0,1,1,1,1,1,1,0])
そして、次の操作を行うので、(0,0)のように左下隅の開始位置を所定の3x8グリッドとして各コイン「領域」を扱います'実際にはが(0,0)から始まるので、必要に応じてcoinStartを設定してください。コインのグループが規則的なパターンで表示される場合は、coinStartを計算し、コインのブロックを生成するコードを呼び出して、coinStartをパラメータとして渡すことができます。
ビットマスクのことを説明できますか?それとももっと簡単にできますか? – cooldood
@YannaiHarel - 簡単にするためにビットマスクを別の配列に変更しました。 –
@SteveIves:あなたは 'Int'ではなく' Bool'の2次元配列を使用します。 –