2016-03-15 3 views
0

Я делаю свою первую игру, она будет похожа на Марио. (с помощью swift)SKSpriteNode Автоматическое перемещение

Пришли к врагам, они должны будут двигаться влево и вправо и реагировать на столкновения, я могу сделать это для моего игрового узла, поскольку я вызываю функцию player.update() из функции обновления SKScene,

override func update(currentTime: NSTimeInterval) 
{ 
    player.update() 
} 

Мой вопрос:

для enemyX, как я могу получить узел для обновления, поскольку SKSpriteNode не имеет функцию обновления по умолчанию, которое может быть преодолено и из моей сцены игры

я не хочу действительно написать кое-что l икэ:

override func update(currentTime: NSTimeInterval) 
{ 
    player.update() 
    enemyX.update() 
    enemyY.update() 
    enemy001.update() 
    ... 
    enemy100.update 
} 

Вы видите, что я имею в виду, как я могу обойти эту проблему, делает SKSpriteNode должен быть другой класс?

Возможно, действия?

let moveLeft = SKAction.moveByX(200, y:0, duration: 5) 
self.runAction(moveLeft, completion: { 
    print("----> move left Complete") 
}) 

Спасибо.

+0

Простое мышление Могу ли я использовать функцию run forever, т.е. '' 'self.runAction (SKAction.repeatActionForever (SKAction.runBlock ({self.enemyLogic()})));' '' – garyconstable

+0

Обычно вы решаете, где вы хотите враг, чтобы перейти к вызову 'SKAction.moveTo',' SKAction.moveToX' или 'SKAction.moveToY'. – Michael

ответ

1

ваш подкласс SKSpriteNode и способ обновления внутри этого класса. то в методе обновления в вашей сцене вы делаете именно то, что вы сказали

player.update() 
enemy.update() 

т.д.

Не рекомендуется использовать SKAction, если поведение ваших врагов не очень просто.

+0

Итак, я полагаю, я добавляю всех врагов, которые появляются в массив, а затем перебирают массив, если позиция противника проходит мимо игроков X или слишком далеко впереди X-позиции игрока, просто пропустите это обновление - это почти что-то вроде что? Есть ли встроенные функции, которые помогут с этим? - спасибо – garyconstable

+0

Да, я бы перебирал массив врагов и вызывал обновление для каждого, делающего все, что мне нужно, для моей конкретной игры – hamobi

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