이하에서는 뷰 컨트롤러와 SKScene을 사용하여 게임을 셋업하는 방법을 두 가지로 나누었습니다. 이 두 가지 솔루션 중 하나가 작동되기를 기대하면서 아직 절반은 아직 시간을 투자하지 않았습니다. 이하에서보다 상세히 설명 은 :스위프트에서 다중 ViewControllers와 SKScene 사용하기
- MainViewController -> GameViewController합니다 (SKScene 보유)
- GameViewController합니다 (SKScene 보유) - 프로토콜
0.5 두 SKScenes/두 신속한 정의 클래스 사용.
수 1
MainViewController - 게임이 SKScene에 끝나면> GameViewController는
합니다 (SKScene 보유) - 내가 GameViewController을 취소하고 MainViewController으로 돌아가려면.
나는 그 일을하는 데 운이 없었습니다. 나는 뷰 컨트롤러를 기각 시도하고 내가 올 한 가장 가까운 SKScene에서 같은 SKScene 사용하여 뭔가 (기각입니다 :
self.view?presentScene(nil)
또는
self.dismiss(animated: false, completion: nil)
self.presentingViewController?.dismiss(animated: false, completion: nil)
하지만 내가 위로를 드릴을 . MainViewController는 내가 GameViewController에 대한 참조를 만드는 것은이 좋아하는 팝을 시도했습니다.
weak var gameViewController:GameViewController? = GameViewController()
불행히도, 나는 제대로 닫 올바른 기능을 찾을 수있어
답변을 찾지 않고 많은 검색을 한 후에 다른 방법을 시도 할 것이라고 생각했습니다.
수 2
GameViewController 다음 GVC 내가 원하는 버튼과 레이블을 잡고 상단에있는 장면을 보여해야합니다 (SKView 보유). 이것은 실패했습니다. 버튼과 레이블에는 zPositions이없고 장면 상단에 나타납니다.
장면을 호출하기 전에 그들에 .isHidden = true
을 시도했는데 작동하는 것처럼 보였습니다. 그러나 장면을 닫고 다시 .isHidden = false
(프로토콜 사용 시도)으로 변경하려고 시도했을 때 작동하지 못했습니다. (stvn이 묘사 한 것에서 벗어났다. How to reference the current view controller from a sprite kit scene)
나는이 두 번째 방법이 좋은 방법 일 수 있다고 생각하지만 어쩌면 올바르게 접근하지 못하고있다.
수 0.5 그리고 마침내 내가 지금 단지에 "플립"앞뒤로 사이의 두 번째 장면을 만드는 생각 해요. 이 방법을 권장하는 방법이라고 생각하지만 접근 방법을 잘 모르겠습니다. 내가이 버전을했다면. 각보기에 대해 gameScene.swift/gameScene.sks를 갖고 싶습니다 (아마도 presenting a uiviewcontroller for skscene 같은 것을 사용하고 있습니다).
내 게임의 레이아웃이 몇 개의보기 컨트롤러를 사용하는 것이 훨씬 쉬울 것이라고 생각하면서 두 개의보기 컨트롤러가있는 첫 번째 방법을 선호합니다.
필자가 가장 선호하는 방법은 여러 장면으로, 모든 것을 배치하기위한 스프라이트 키트와 수학에별로 좋지 않습니다.
첫 번째 방법도 가능합니까? 그렇다면 어떤 제안이라도 좋을 것입니다. 그렇게하지 않는 것이 좋습니다.