我在`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
是的,我有快速行动 –