2015-09-30 7 views
0

просто быстрый вопрос о снарядах в SpriteKit с использованием быстрых. У меня есть следующий код для моего «монстра», который я хочу стрелять из сюрикена гладко, но сейчас он просто появляется в рандомизированной точке, вместо того, чтобы плавно снимать его, как из моего персонажа, когда я его кодирую в touhcesBegan функцияплавный переход для снаряда в комплекте спрайтов

Вот код:

func monsterShoots() { 

    let monsterShuriken = SKSpriteNode(imageNamed: "projectile-1") 
    monsterShuriken.position = monster.position 
    addChild(monsterShuriken) 
    monster.position.y += CGFloat(arc4random_uniform(30)) - CGFloat(arc4random_uniform(30)) 

    monsterShuriken.position.x -= CGFloat(arc4random_uniform(1000)) 

    let actionMoveMonster = SKAction.moveTo(monsterShuriken.position, duration: 1.0) 
    let actionMoveDoneMonster = SKAction.removeFromParent() 
    monsterShuriken.runAction(SKAction.sequence([actionMoveMonster, actionMoveDoneMonster])) 
} 

и я повторить действие в didMoveToView с:

runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock(monsterShoots), 
      SKAction.waitForDuration(1.0) 
      ]) 
     )) 

Благодарности

+0

Трудно ответить, не видя больше кода. Но похоже, что вы сначала устанавливаете монстра и его позиции сюрикена, поэтому они подпрыгивают до этих позиций, а затем вы настраиваете действие, но к тому времени, когда действия будут выполняться, они бессмысленны, потому что вы ранее устанавливали позиции. Может быть, неправильно. Просто догадка. Некоторое время не выполнялось кодирование спрайтов. Но вы должны показать больше кода. – clearlight

ответ

0

Я думаю, вам нужно написать следующее:

monster.position.y += CGFloat(arc4random_uniform(30)) - CGFloat(arc4random_uniform(30)) 

до этого:

monsterShuriken.position = monster.position 
Смежные вопросы