2016-11-08 4 views
0

私は、画面を保持すると上下に移動するプレーヤーを持つゲームを作っています。しかし、これは重要な部分ではありません。特定のパターンでスプライトのセットを追加する方法

私が必要とするのは、あなたに向かって来るエナメルを加えることです。

エネミーをいくつかの異なるパターンで追加する方法を知る必要があります。

このよう

:コインが例えばであるべき場所を示すために2次元アレイを定義することができる(コインパターンを見て、どのようにこれを達成することができる?)

Coins with pattern Coins without

答えて

1

あなたが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をパラメータとして渡すことができます。

+0

ビットマスクのことを説明できますか?それとももっと簡単にできますか? – cooldood

+0

@YannaiHarel - 簡単にするためにビットマスクを別の配列に変更しました。 –

+0

@SteveIves:あなたは 'Int'ではなく' Bool'の2次元配列を使用します。 –

関連する問題