问题描述
我目前正在尝试创建一些我自己的自定义类。其中两个是继承典型SKSpriteNode的自定义按钮和继承SKScene的自定义菜单场景。我的目标是让按钮类具有 parentScene 属性和 targetScene 属性。当按钮被触摸时,它会调用菜单场景类中的一个函数来呈现新场景。
按钮类:
class Button : SKSpriteNode{
var parentScene : MenuScene
var targetScene : SKScene
override init(texture: SKTexture?,color: UIColor,size: CGSize) {
self.parentScene = MenuScene()
self.targetScene = SKScene()
super.init(texture: texture,color: color,size: size)
self.isUserInteractionEnabled = true
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
for touch in touches{
print("Touched Button")
parentScene.moveScenes(targetScene)
}
}
}
菜单类:
class MenuScene : SKScene{
func moveScenes(_ targetScene : SKScene){
print("attempt")
let newScene = targetScene
newScene.scaleMode = self.scaleMode
let animation = SKTransition.fade(withDuration: 0.5)
self.view?.presentScene(newScene,transition: animation)
}
}
游戏场景:
class GameScene: MenuScene {
override func didMove(to view: SKView) {
let newButton = Button()
newButton.size = CGSize(width: 300,height: 300)
newButton.color = .blue
newButton.parentScene = GameScene()
newButton.targetScene = Menu2(size:self.size)
newButton.position = CGPoint(x: 0,y: 0)
addChild(newButton)
}
}
当我运行它并点击按钮时,没有任何反应。没有任何崩溃,也没有出现新场景。我知道当我单击按钮时,它会到达 moveScenes 函数,因为控制台会打印“尝试”。没有抛出任何错误,所以我不知道从这里开始做什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)