• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将 SKCameraNode 用于通用应用程序 SWIFT

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:14:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 Xcode 8 beta 4 上使用 Sprite Kit 关卡编辑器开发了一款通用游戏。

我在关卡编辑器中的场景是 750x3334。 在我的场景中,我有一张背景图片,背景图片已调整为场景大小。

  • 场景 anchor = (0,1) 左上角

  • 背景 anchor = (0,1) 左上角。

我需要在我的场景中安装一个相机。

我设置了一个比例为 (1,1) 的 SKCameraNode,相机的位置是我场景的中心。

camera

创建场景:

 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
            }
        }
    }

游戏启动时,我的相机必须设置为背景的顶部与设备的顶部边缘相等。

这样做:

override func sceneDidLoad() {
    camera?.position.y = -UIScreen.main.nativeBounds.size.height/2
}

对于 iPhone 6,它可以完美运行。 对于 iPhone 5、6+,我在顶部边缘有一个空白区域(场景外)。

explain

所以也许我的逻辑是错误的......



Best Answer-推荐答案


您不应该触摸屏幕尺寸,您需要使用场景尺寸。 .AspectFill 保持相同的场景大小,无论设备如何,唯一改变场景大小的 scaleMode 是 .ResizeFill

要让你的相机居中,你需要这样做

camera.position = CGPointMake(scene.frame.size.width / 2, scene.frame.size.height / 2)  

注意,场景可能是自己的,我不知道你会在哪里使用这个代码

关于ios - 将 SKCameraNode 用于通用应用程序 SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900509/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap