ios - presentScene() 不是 SKScene 的成员

标签 ios swift sprite-kit

我的问题是,当我尝试使用 self.scene?.presentScene() 移动到下一个场景时,会弹出一条错误消息,提示“presentScene 不是 SKScene 的成员”。

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        backgroundColor = SKColor.blackColor()
        let start = SKLabelNode(fontNamed: "Chalkduster")
        start.position = CGPoint (x: self.frame.width/2-75, y: self.frame.height/2+100)
        start.fontSize = 35
        start.text = "Start"
        addChild(start)
            }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       /* Called when a touch begins */
        let MyScene = SecondScene(size: self.size)
        MyScene.scaleMode = scaleMode
        self.scene?.presentScene(MyScene)

    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}

最佳答案

presentSceneSKView 的方法,不是SKScene

所以要加载一个新场景你应该这样写

class GameScene: SKScene {
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let myScene = SecondScene(size: self.size)
        myScene.scaleMode = scaleMode
        self.view?.presentScene(myScene)
    }
}

过渡

您还可以使用过渡效果呈现新场景。在这种情况下,使用此方法并将 SKTransition 作为第二个参数传递。

self.view?.presentScene(myScene, transition: SKTransition.crossFadeWithDuration(1))

在上面的示例中,我使用了持续时间为 1 秒的交叉淡入淡出过渡。但还有许多其他转换可供选择。

关于ios - presentScene() 不是 SKScene 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35110305/

相关文章:

ios - 在 Swift 的后台线程中执行时 usleep 的精度不佳

ios - 移动背景在 Spritekit 上停止重复

ios - Xcode Swift sprite-kit SKS 文件动画在 SKS 文件中正常工作,但在模拟器或 iPhone 上不起作用

android - View 中的 React-Native 图像大小未知大小

objective-c - 如何在 iOS 中以圆形方向旋转 UIButton?

ios - Chrome Cordova 翻译问题

objective-c - 如何让我的 Objective C 类方法只对 Swift 类可见

iphone - AVAudioRecorder 如何在 iphone 中获得麦克风电平?

swift - 游戏中心匹配始终无效

ios - 在 Sprite Kit 中播放声音