2015-01-07 4 views
0

그래서 내가하려는 것은 분당으로 볼 수있는 것입니다. 유명한 Spreadkit 게임 구축을위한 유명한 "608 모범 사례"에서 8 개, Swift 언어로. 기본적으로 다른 .sks 파일 내에있는 SKScene에서 자식 노드를 복사하십시오..sks 파일의 노드 복사

나는 그럭저럭 그것을 어떤 식 으로든 할 수 있었다. 그러나 프로그램은 "신속한 동적 캐스트 실패"라는 메시지와 함께 일종의 자동 중단 점에서 멈춘다. 내가 뭘 잘못했는지 모르겠다. 나는 그 선을 안다. 그러나 copy() 메서드가 어떻게 작동하는지 이해하지 못한다. 사전에

class GameScene: SKScene { 

var camera = SKNode() 
var player = SKNode() 

override func didMoveToView(view: SKView) { 
    camera = childNodeWithName("Camera")! as SKNode 
    player = camera.childNodeWithName("player")! as SKNode 

    var child = SKNode() 
    for child in SKScene.unarchiveFromFile("Player")!.children { 
//Here is the line i doubt of 
     player.addChild(child.copy() as SKNode) 
    } 
} 

//etc etc... 

많은 감사합니다 : D

편집 :

여기 내 코드의 그래, 난 그냥이 방법을 시도하는 다른 프로젝트를 생성하고 네는 여전히 중단 점에서 멈 춥니 다. 오류가 없으며, 내가 누를 때마다 멈추게됩니다.

이 코드에 문제가 있습니다

...

var nodeToFill = SKNode() 

override func didMoveToView(view: SKView) { 
    nodeToFill = childNodeWithName("nodeToFill")! 

    var child = SKNode() 
    for child in SKScene.unarchiveFromFile("fillNode")!.children { 
     child.removeFromParent() 
     nodeToFill.addChild(child as SKSpriteNode) 
    } 

멈출 곳은 ... (... 이미지를 게시 할 수 없습니다) HTTP : //i.stack. 좋아 그래서 내가 여기에 ... 로그 스택 프레임은 텍스트가 너무 오래 페이지를 만드는 피하지로두고 그들이 :

EDIT 2 imgur.com/m6RRg.png

로그 : http://i.stack.imgur.com/iP7JP.png 스택 : http://i.stack.imgur.com/JReFU.png

여기서 멈추는 줄은 unarchiveFromFile 메서드가 호출되는 곳입니다. 그것은 그 방법과 관련이 있지만 무엇이 잘못 되었는가를 알 수 없습니다.

+0

이미지를 복사하여 텍스트 (선택 및 복사)로 붙여 넣을 수 있지만 그 내용은 적합하지 않습니다. 호출 스택, 로그 및 오류가 발생한 코드 줄이 도움이 될 것입니다. – LearnCocos2D

+0

또한 sks 장면을 나중에 버리면 노드를 복사 할 필요가 없습니다. 대신 모든 노드에 대해 removeFromParent 메서드를 호출하고 자식으로 추가 할 수 있습니다. 복사하지 않고 – LearnCocos2D

+0

희망 사항을 추가했습니다. 로그 및 스택 프레임에 익숙하지 않은 경우 ... 전혀 아닙니다./어쨌든 코드는 첫 번째 편집의 코드입니다. 그것은 많은 변화하지 않지만 ... – andrello

답변

0

해결했습니다. for child in SKScene.unarchiveFromFile("fillNode")!.childrenfor child in GameScene.unarchiveFromFile("fillNode")!.children으로 대체해야합니다. "SKScene"을 "GameScene"으로 대체하십시오.