在进入我的游戏构建之前尝试运行“剪切场景视频”。游戏效果很好。我创建了一个单独的场景,我将其命名为“StartScene”来播放我的过场动画。构建成功,但是当它到达模拟器上的过场动画部分时,我得到一个空白的灰色屏幕。我在网上搜索了很多视频的大小调整问题,但是 Apple Developer 说:
创建视频节点时,其 size 属性会初始化为视频内容的基本大小,但您可以根据需要更改它。视频内容会自动拉伸到新尺寸。
我从 Apple Developer 复制的示例代码:
let sample = SKVideoNode(fileNamed: "sample.mov")
sample.position = CGPoint(x: frame.midX,
y: frame.midY)
addChild(sample)
sample.play()
这是我在 StartScene.swift 中播放过场动画的代码:
import SpriteKit
import GameplayKit
class StartScene: SKScene {
override func sceneDidLoad() {
let openingVideo = SKVideoNode(fileNamed: "MyCutScene.mp4")
openingVideo.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(openingVideo)
openingVideo.play()
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let gameSceneTemp = GameScene(fileNamed: "GameScene")
self.scene?.view?.presentScene(gameSceneTemp!, transition: SKTransition.doorsCloseHorizontal(withDuration: 1.0))
}
}
也许这是一个新手错误,通常只是格式化场景错误。我认为这会很简单。视频保存在 Assets 的 App 包中,是的,我确保名称与我在代码字符串中输入的匹配。最后一段代码只是我使用 touchesBegan 函数过渡到 GameScene 的过程。