2017-02-17 2 views
0

필자는 빠른 튜토리얼을 따르려고 노력해 왔으며 SKAction이 사용될 때마다 필자는 모든 튜토리얼을 매우 실망스럽게 만들었습니다. 자습서를 따라갈 수 없기 때문에 내 프로그램이 작동하지 않습니다. 이것은 여러 프로그램에서 발생했는데 절대로 이해할 수 없습니다. 내가 구축하고 시뮬레이터 모두에서 프로그램을 실행할 때마다스위프트 : 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)을 반드시 추가하십시오. 다음과 같이 구현하는 것이 좋습니다.

+0

변경 사항이 변경되기 전에 오류가 발생하지 않도록 코드를 붙여 넣습니다. 노드 카운터가 증가하지 않고 총알이 표시되지 않습니다. –

+0

@ 리차드 파커 방금 총알을 현장에 추가해야한다는 것을 깨달았습니다. – Pierce

+0

@ 리차드 파커 - 내 업데이트가 도움이되는지 알려주세요. – Pierce

관련 문제