2017-02-17 55 views
0

我一直在嘗試跟隨快速教程,我遇到了一些令我非常沮喪的事情,每次使用SKAction的教程都伴隨着我嘗試遵循,因爲我無法跟隨任何教程,因爲我的程序無法工作。這已經發生在MULTIPLE程序中,我無法想象它。Swift:SKAction不能在觸摸上工作

下面是程序代碼:

import SpriteKit 
import GameplayKit 

class GameScene: SKScene{ 

let player = SKSpriteNode(imageNamed: "playerShip") 

override func didMove(to view: SKView) { 

    let background = SKSpriteNode(imageNamed: "background") 
    background.size = self.size 
    background.position = CGPoint(x: self.size.width/2, y: self.size.height/2) 
    background.zPosition = -1 
    self.addChild(background) 


    player.setScale(1) 
    player.position = CGPoint(x: self.size.width/2, y: self.size.height * 0.2) 
    player.zPosition = 2 
    self.addChild(player) 


} 

func fireBullet(){ 

    let bullet = SKSpriteNode(imageNamed: "bullet") 
    bullet.setScale(1) 
    bullet.zPosition = 1 
    bullet.position = player.position 

    let moveBullet = SKAction.moveTo(y: self.size.height + bullet.size.height, duration: 1) 
    let deleteBullet = SKAction.removeFromParent() 
    let bulletSequence = SKAction.sequence([moveBullet, deleteBullet]) 
    bullet.run(bulletSequence) 

} 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    fireBullet() 
} 

} 

每當我構建並運行在模擬器中的一切程序是罰款和生成成功。然而,無論什麼時候我點擊什麼都不會發生,每當我嘗試用SKAction做任何事時都會發生這種情況。我應該提到,每次點擊屏幕右下角的FPS都會發生變化,但沒有其他事情發生,節點數保持不變,並且屏幕保持不變,而且子彈不熄滅。

這裏是我試圖與沿着沿教程:https://www.youtube.com/watch?v=mvlwZs2ehLU

回答

4

我注意到你實際上並沒有加入bullet精靈到場景中實例化之後。確保添加addChild(bullet)。我建議實施這樣的事情:

func fireBullet() { 

    let bullet = SKSpriteNode(imageNamed: "bullet") 
    bullet.setScale(1) 
    bullet.zPosition = 1 
    bullet.position = player.position 
    addChild(bullet) 

    let moveBullet = SKAction.moveTo(y: self.size.height + bullet.size.height, duration: 1.0) 
    let deleteBullet = SKAction.removeFromParent() 
    let bulletSequence = SKAction.sequence([moveBullet, deleteBullet]) 
    bullet.run(bulletSequence) 

} 
+0

我複製粘貼的代碼,並再次沒有錯誤,但就像之前唯一改變的是fps。節點計數器不增加,並且不出現子彈。 –

+0

@Richard Parker我剛剛意識到你需要在現場添加子彈 – Pierce

+0

@RichardParker - 看到我的更新讓我知道,如果這有幫助 – Pierce