我正在制作游戏,我想从我的UIView
(这是一个SKScene)文件中展示一个MenuScene.swift
(用于我的游戏中的共享场景)。我在Stack Overflow上搜索了类似的问题,但是没有一个在我的游戏中起作用。谁能告诉我它是如何完成的?
菜单场景:
class MenuScene: SKScene {
override func didMove(to view: SKView) {
backgroundColor = UIColor(red: 44/255, green: 62/255, blue: 80/255, alpha: 1.0)
addLabelsAndButtons()
}
func addLabelsAndButton() {
let shareButton = SKSpriteNode(imageNamed: "ShareButton")
shareButton.size = CGSize(width: frame.size.height/12, height: frame.size.height/12)
shareButton.position = CGPoint(x: frame.midX + shareButton.size.width/1.5, y: frame.minY + shareButton.size.height)
shareButton.name = "ShareButton"
addChild(shareButton)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if atPoint((touch.location(in: self))).name == "ShareButton" {
//Where I want to present my Share Scene!
}
}
}
答案 0 :(得分:0)
您无法在SKScene中显示UIView,因为SKScene已针对处理游戏的精灵渲染进行了优化,并使用了与UIView不同的技术堆栈。
您可以做的是将UIView添加到添加了SKView的父视图(也是UIView)。这样一来,您可以在游戏的画面视图上方显示一个更加静态的视图,例如:比分视图,平视视图或菜单。
我在下面放了一张图:
UIView
⮑ 0: SKView
⮑ 0: SKScene
⮑ 1: UIView