在进入我的游戏版本之前,尝试运行“剪切科学视频”。游戏效果很好。我创建了一个单独的场景,我将其命名为“ StartScene”以播放剪切的场景。构建成功,但是当它到达模拟器上的剪切场景部分时,我得到一个空白的灰色屏幕。我已经在网上搜索过,但视频中存在很多调整大小的问题,但是Apple Developer这么说:
创建视频节点后,其大小属性将初始化为视频内容的基本大小,但是您可以根据需要更改它。视频内容会自动拉伸到新的大小。
我从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的原因。
答案 0 :(得分:0)
我问了一位Apple Developer朋友,他为我找到了答案。以下是使SKVideoNode正常播放的步骤: 注意此构建的场景称为StartScene。
将StartScene.sks文件中的类设置为StartScene 我的问题是我没有将“自定义类”更改为场景名称。确保您这样做,新手肯定会误会我。
将mp4添加到“复制捆绑包资源”构建阶段(不确定为什么需要这样做,我不认为它在典型的应用程序中使用,但是游戏可能有所不同) 确保视频文件不仅位于左侧的App文件中,而且还应复制到“构建阶段--->复制捆绑资源”区域。
这时它将播放,但您只会听到视频的声音。要查看它,您需要设置大小。因此,在StartScene类的didMove函数中添加一行以设置大小。
override func didMove(to view: SKView) {
let openingVideo = SKVideoNode(fileNamed: "UncleClaryWolfIntro.mp4")
openingVideo.anchorPoint = CGPoint(x: 0.5, y: 0.5)
openingVideo.position = CGPoint(x: 0, y: 0)
openingVideo.size = frame.size
addChild(openingVideo)
openingVideo.play()
}
所有有关使屏幕大小适合播放屏幕的内容。
视频现在应该可以显示,但是长宽比将关闭。因此,在GameViewController中更改此行
scene.scaleMode = .aspectFill
对此
scene.scaleMode = .fill
还有瞧!该视频将播放,并且我的视频现在将使用此代码播放,并完成步骤。希望这对您有所帮助,就像对我一样。 祝您编码愉快!