2015-09-30 25 views
0

僅僅是關於使用swift的SpriteKit中的拋射物的快速問題。 但是,我想讓我的「怪獸」順利地拍出手裏劍,但是,現在只是在隨機點彈出,而不是像我的角色那樣順利地拍攝出來,當我在touhcesBegan中編碼時功能spritekit中的拋射物的平滑過渡

下面的代碼:

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