ios - 将 SKCameraNode 用于通用应用程序 SWIFT
<p><p>我在 Xcode 8 beta 4 上使用 Sprite Kit 关卡编辑器开发了一款通用游戏。</p>
<p>我在关卡编辑器中的场景是 750x3334。
在我的场景中,我有一张背景图片,背景图片已调整为场景大小。</p>
<ul>
<li><p>场景 anchor= (0,1) 左上角</p></li>
<li><p>背景 anchor= (0,1) 左上角。</p></li>
</ul>
<p>我需要在我的场景中安装一个相机。 </p>
<p>我设置了一个比例为 (1,1) 的 SKCameraNode,相机的位置是我场景的中心。</p>
<p> <a href="/image/1XHFh.png" rel="noreferrer noopener nofollow"><img src="/image/1XHFh.png" alt="camera"/></a> </p>
<p>创建场景:</p>
<pre><code> if let scene = GKScene(fileNamed: "GameScene") {
if let sceneNode = scene.rootNode as! GameScene? {
// Copy gameplay related content over to the scene
sceneNode.entities = scene.entities
sceneNode.graphs = scene.graphs
sceneNode.scaleMode = .aspectFill
if let view = self.view as! SKView? {
view.presentScene(sceneNode)
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
}
</code></pre>
<p>游戏启动时,我的相机必须设置为背景的顶部与设备的顶部边缘相等。</p>
<p>这样做:</p>
<pre><code>override func sceneDidLoad() {
camera?.position.y = -UIScreen.main.nativeBounds.size.height/2
}
</code></pre>
<p>对于 iPhone 6,它可以完美运行。
对于 iPhone 5、6+,我在顶部边缘有一个空白区域(场景外)。</p>
<p> <a href="/image/WO8Jh.png" rel="noreferrer noopener nofollow"><img src="/image/WO8Jh.png" alt="explain"/></a> </p>
<p>所以也许我的逻辑是错误的......</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不应该触摸屏幕尺寸,您需要使用场景尺寸。 .AspectFill 保持相同的场景大小,无论设备如何,唯一改变场景大小的 scaleMode 是 .ResizeFill</p>
<p>要让你的相机居中,你需要这样做</p>
<pre><code>camera.position = CGPointMake(scene.frame.size.width / 2, scene.frame.size.height / 2)
</code></pre>
<p>注意,场景可能是自己的,我不知道你会在哪里使用这个代码</p></p>
<p style="font-size: 20px;">关于ios - 将 SKCameraNode 用于通用应用程序 SWIFT,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/38900509/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/38900509/
</a>
</p>
页:
[1]