我在`SKScene'中有一個菜單。我正在嘗試將Peek和Pop功能集成到它中。我有多種可能的選擇,所以我的問題是如何確定哪一個正在被觸摸。Peek和Pop函數SpriteKit
這是我的代碼:
import SpriteKit
import UIKit
class Menu: SKScene, UIViewControllerPreviewingDelegate {
//SETUP Menu
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
return UIViewController()
}
//POP
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
return
}
}
GameViewController.swift:
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
if self.traitCollection.forceTouchCapability == .available {
registerForPreviewing(with: scene as! UIViewControllerPreviewingDelegate, sourceView: scene.view!)
}
}
// Move to Menu
}
}
我敢肯定,我要傳遞的信息在sourceView
領域。但由於這是在GameViewController中,我不知道該怎麼做。而且我不知道如何在菜單內做到這一點,我會在哪裏放這個代碼?
if let scene = GameScene(fileNamed:"GameScene") {
if self.traitCollection.forceTouchCapability == .available {
registerForPreviewing(with: scene as! UIViewControllerPreviewingDelegate, sourceView: ButtonPressed)
}
}
謝謝,可惜我不能重新設計的菜單,因爲它是一個遊戲,必須SpriteKit進行。 –
不客氣。我不會重新設計你的菜單,它使用SpriteKit中的UIKit笨重(除了可能的ColletionViews,ScrollViews)。如果您還沒有這麼做,請查看3D touch快速操作,它們可以輕鬆集成到SpriteKit中。快樂編碼 – crashoverride777
是的,我有快速行動 –