2017-10-12 24 views
0

이하에서는 뷰 컨트롤러와 SKScene을 사용하여 게임을 셋업하는 방법을 두 가지로 나누었습니다. 이 두 가지 솔루션 중 하나가 작동되기를 기대하면서 아직 절반은 아직 시간을 투자하지 않았습니다. 이하에서보다 상세히 설명 은 :스위프트에서 다중 ViewControllers와 SKScene 사용하기

  1. MainViewController -> GameViewController합니다 (SKScene 보유)
  2. 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 같은 것을 사용하고 있습니다).

내 게임의 레이아웃이 몇 개의보기 컨트롤러를 사용하는 것이 훨씬 쉬울 것이라고 생각하면서 두 개의보기 컨트롤러가있는 첫 번째 방법을 선호합니다.
필자가 가장 선호하는 방법은 여러 장면으로, 모든 것을 배치하기위한 스프라이트 키트와 수학에별로 좋지 않습니다.

첫 번째 방법도 가능합니까? 그렇다면 어떤 제안이라도 좋을 것입니다. 그렇게하지 않는 것이 좋습니다.

답변

0

MainViewController가 UINavigationController 인 경우 메서드 1에서 다른 ViewController를 푸시하고 터지는 데 아무런 문제가 없어야합니다.

GameViewController :

self.navigationController!.popViewController(animated: true)