2016-11-08 3 views
0

Я делаю игру с игроком, который идет вверх и вниз, если вы держите экран. Однако это не важная часть.Как добавить набор спрайтов по определенному шаблону

Что мне нужно - это добавить ВРАГИ, которые приходят к вам.

Мне нужно знать, как добавлять ВРАГИ в несколько разных шаблонов.

Как это: (? ВЗГЛЯД НА МОНЕТЫ КАРТИНЫ, КАК МОЖНО ДОБИТЬСЯ ЭТО)

Coins with pattern Coins without

ответ

1

Вы можете определить 2-мерный массив, чтобы указать, где монета должна быть, например,

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]) 

Затем обработайте каждую монету «площадь» в качестве 3x8 сетки так, заданной отправного расположение в нижнем левом углу, как (0,0), сделайте следующее:

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 
} 

Вы Wouldn 't фактически начать с (0,0), поэтому установите coinStart по мере необходимости. Если группы монет отображаются в регулярном шаблоне, вы можете вычислить coinStart и сделать код, который генерирует блок монет, функцию, которую вы вызываете, передавая значение coinStart в качестве параметра.

+0

Вы можете объяснить бит-маска? или сделать его проще? – cooldood

+0

@YannaiHarel - Я изменил битмаску на другой массив для простоты. –

+0

Вы @SteveIves: должен использовать двумерный массив 'Bool', а не' Int' –

Смежные вопросы