swift - 如何解决 Swift Playgrounds 中的“运行此页面时出现问题”消息?
问题描述
我正在尝试使用 SceneKit 为 WWDC 学生挑战赛制作一些东西,这要求我的项目位于 Swift 操场上。我不断收到“运行此页面时出现问题”的消息。它不提供错误消息。它只是建议检查我的代码或重新开始。我曾尝试单独删除代码片段,但我无法找到此问题的根源。我还尝试在 man Xcode playground 中运行它,它提供了警告,我引用了“操场无法继续运行,因为操场源代码已经运行”。我被困住了。我的代码有什么问题。
import UIKit
import SceneKit
import QuartzCore
import PlaygroundSupport
class GameScene: UIViewController, SCNSceneRendererDelegate {
var primaryView: SCNView!
var primaryScene: SCNScene!
var cameraNode: SCNNode!
override func viewDidLoad() {
sceneAndViewInit()
cameraInit()
createGround()
moonInit()
}
func createGround() {
var ground = SCNBox(width: 200, height: 1, length: 200, chamferRadius: 0)
var groundPhysicsShape = SCNPhysicsShape(geometry: ground, options: nil)
var groundNode = SCNNode(geometry: ground)
ground.firstMaterial?.diffuse.contents = UIColor.orange
ground.firstMaterial?.specular.contents = UIColor.white
groundNode.position = SCNVector3(0, -6, 0)
groundNode.physicsBody = SCNPhysicsBody(type: .static, shape: groundPhysicsShape)
primaryScene.rootNode.addChildNode(groundNode)
}
func sceneAndViewInit() {
primaryView = SCNView(frame: CGRect(x: 0, y: 0, width: 500, height: 300))
primaryView.allowsCameraControl = true
primaryView.autoenablesDefaultLighting = true
primaryScene = SCNScene()
primaryView.scene = primaryScene
primaryView.isPlaying = true
}
func cameraInit() {
var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 2)
cameraNode.camera?.fieldOfView = 65
cameraNode.camera?.wantsHDR = false
primaryScene.rootNode.addChildNode(cameraNode)
}
func moonInit() {
let moonScene = SCNScene(named: "Moon.scn")
var moonNode = moonScene?.rootNode.childNode(withName: "Sphere", recursively: true)
var moonPhysicsShape = SCNPhysicsShape(node: moonNode!, options: nil)
moonNode?.position = SCNVector3(0, 0, 0)
moonNode?.scale = SCNVector3(1, 1, 1)
moonNode?.name = "Moon"
moonNode?.physicsBody = SCNPhysicsBody(type: .static, shape: moonPhysicsShape)
primaryScene.rootNode.addChildNode(moonNode!)
}
func renderer(_ aRenderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
print(time)
}
}
let gameScene = GameScene()
PlaygroundPage.current.liveView = gameScene
(“Moon.scn”是我在资源/文件部分中的一个文件以及它的纹理,我仍然遇到没有任何与月球相关的代码的问题。)
解决方案
推荐阅读
- android - 错误:“无法安装应用程序:INSTALL_FAILED_OLDER_SDK 应用程序的 minSdkVersion 比设备 API 级别新”
- google-apps-script - 从 Google 表格过滤器添加的新行上的另一个邮件合并触发器
- javascript - 我如何为 AngularJS 中的对象列表重复 html?
- arrays - 如何在 VBA 中调用带有列表和另一个参数的函数?
- kubernetes - 在 kubernetes 中使用“medium: Memory”的“emptyDir”卷时,我们可以在哪里看到主机上的挂载目录?
- vue.js - 列表项未在 Vue.js 中使用组件概念中的组件显示
- c - 将 uint8_t 转换为二进制
- android - 应用关闭时未收到 Firebase 消息服务
- java - Apache Spark 任务给出空指针异常
- grafana - 使用 Prometheus 表达收入指标