【问题标题】:How to transition to SCNView from a SKView?如何从 SKView 转换到 SCNView?
【发布时间】:2015-11-16 09:11:03
【问题描述】:

嘿,好的,我有一个 UIView 只是标准的默认控制器,但是我在另一个 .swift 文件中有一个 SCNView,所以我可以从标准的 UIViewController 转换为 SKScene,但我无法转换从SKSceneSCNcene 的关键在于我的代码

 class PlayController: UIViewController, ADBannerViewDelegate, SKPhysicsContactDelegate, SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate{


    let scnView = self.view as! SCNView
    let skScene = scnView.overlaySKScene

    scnView.overlaySKScene = skScene
    scnView.backgroundColor = UIColor.whiteColor()

    scnView.scene = FieldScene
    scnView.delegate = self

    scnView.allowsCameraControl = true
    scnView.showsStatistics = false

如上所示,我尝试转换到的控制器以 UIViewController 开始,然后再往下放置为SCNView。 在这行代码中让 scnView = self.view as! SCNView 但是当我试图从 SKScene 过渡到这个场景时,我将如何在代码 Swift 中做到这一点?

我开始使用的控制器如下所示

import iAd
import UIKit
import GameKit
import SceneKit
import StoreKit
import SpriteKit
import QuartzCore
import Foundation
import AVFoundation
import AudioToolbox

//============================================================
class MainMenuController: SKScene, ADBannerViewDelegate, SKPhysicsContactDelegate, SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate{


override func didMoveToView(view: SKView) {
}

【问题讨论】:

  • 还需要给FieldScene加上括号,所以scnView.scene = FieldScene()

标签: ios xcode swift sprite-kit transitions


【解决方案1】:

overlaySKScene

let skScene = scnView.overlaySKScenescnView.overlaySKScene = skScene 的实现应该更改,因为它们无效

创建 SKScene 对象:let overlayScene = SKScene(size: CGSizeMake(200, 200)).

设置基础对象的位置:base.position = CGPointMake(75, 0)

将基础对象添加到场景:overlayScene.addChild(base)

设置场景叠加:scnView.overlaySKScene = overlayScene.

过渡

您可以通过调用视图的 presentScene:withTransition:incomingPointOfView:completionHandler: 方法来添加过渡。

    sceneView.presentScene(nextSceneToLoad(),
    withTransition:skTransition,
    incomingPointOfView:nil, completionHandler:nil)

另一个例子。

let transition = SKTransition.pushWithDirection(.Right, duration: 1.0)
self.sceneView?.presentScene(SCNScene(), withTransition: transition, incomingPointOfView: nil, completionHandler: nil)

overlaySKScene API Reference

presentScene API Reference

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多