无法将 'SCNView' 类型的值转换为 'SKView'
Could not cast value of type 'SCNView' to 'SKView'
我正在按照教程在 Swift 中使用 XCode 7 创建 "tetris" 游戏。我遵循了本教程中的每一步,但我得到了一个运行时错误:
无法将类型 'SCNView' (0x106c19778) 的值转换为 'SKView' (0x1068fcad0)。
我的GameViewController.swift如下:
import UIKit
import SceneKit
import SpriteKit
class GameViewController: UIViewController {
var scene: GameScene!
var swiftris:Swiftris!
override func viewDidLoad() {
super.viewDidLoad()
//Configure the view
let skView = view as! SKView
skView.multipleTouchEnabled = false
//Create and configure the scene
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
scene.tick = didTick
swiftris = Swiftris()
swiftris.beginGame()
//Presente the scene.
skView.presentScene(scene)
scene.addPreviewShpaeToScene(swiftris.nextShape!){
self.swiftris.nextShape?.moveTo(StartingColumn, row: StartingRow)
self.scene.movePreviewShape(self.swiftris.nextShape!){
let nextShapes = self.swiftris.newShape()
self.scene.startTicking()
self.scene.addPreviewShpaeToScene(nextShapes.nextShape!) {}
}
}
}
override func prefersStatusBarHidden() -> Bool {
return true
}
func didTick(){
swiftris.fallingShape?.lowerShapeByOneRow()
scene.redrawShape(swiftris.fallingShape!, completion: {})
}
}
我已经在 google 和这里搜索过它,但我没有找到任何与 SCNView 和 SKView 相关的内容。
提前致谢。
我确实发现我的代码有问题。我将 SKView 实例化为 GameViewController 中的视图:
self.view = SKView()
let skView = view as! SKView
在我这样做之前,我试图在故事板中将视图的 class 更改为 SKView,但这是不可能的。
感谢您的修改。
我正在按照教程在 Swift 中使用 XCode 7 创建 "tetris" 游戏。我遵循了本教程中的每一步,但我得到了一个运行时错误:
无法将类型 'SCNView' (0x106c19778) 的值转换为 'SKView' (0x1068fcad0)。
我的GameViewController.swift如下:
import UIKit
import SceneKit
import SpriteKit
class GameViewController: UIViewController {
var scene: GameScene!
var swiftris:Swiftris!
override func viewDidLoad() {
super.viewDidLoad()
//Configure the view
let skView = view as! SKView
skView.multipleTouchEnabled = false
//Create and configure the scene
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
scene.tick = didTick
swiftris = Swiftris()
swiftris.beginGame()
//Presente the scene.
skView.presentScene(scene)
scene.addPreviewShpaeToScene(swiftris.nextShape!){
self.swiftris.nextShape?.moveTo(StartingColumn, row: StartingRow)
self.scene.movePreviewShape(self.swiftris.nextShape!){
let nextShapes = self.swiftris.newShape()
self.scene.startTicking()
self.scene.addPreviewShpaeToScene(nextShapes.nextShape!) {}
}
}
}
override func prefersStatusBarHidden() -> Bool {
return true
}
func didTick(){
swiftris.fallingShape?.lowerShapeByOneRow()
scene.redrawShape(swiftris.fallingShape!, completion: {})
}
}
我已经在 google 和这里搜索过它,但我没有找到任何与 SCNView 和 SKView 相关的内容。
提前致谢。
我确实发现我的代码有问题。我将 SKView 实例化为 GameViewController 中的视图:
self.view = SKView()
let skView = view as! SKView
在我这样做之前,我试图在故事板中将视图的 class 更改为 SKView,但这是不可能的。
感谢您的修改。