gpt4 book ai didi

ios - SpriteKit 定位和坐标系

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:47 24 4
gpt4 key购买 nike

我的项目中有一个空白的 SKScene,我尝试将一个盒子添加到场景中,如下所示:

let blueBox = SKSpriteNode(color: UIColor.blueColor(),
size: CGSize(width: 100, height: 100))
blueBox.anchorPoint = CGPoint(x: 0, y: 0)
blueBox.position = CGPoint(x: 0, y: 0)
addChild(blueBox)

由于某种原因,该框没有出现在屏幕上。如果我对定位坐标的理解是正确的 anchorPoint of 0,0 and position of 0,0 表示“将点 0,0 视为蓝框的左下角”。所以我希望在屏幕的左下方看到一个蓝色框。但是,如果我这样改变位置:

blueBox.position = CGPoint(x: 300, y: 0)

然后我可以看到蓝色框(在底部,非常靠近左边缘)。好像屏幕左下坐标不是从x=0开始的,有的值大致相当于300。

谁能分享一些光?我对 SpriteKit 还很陌生,你可以清楚地看到..

我的第二个问题是关于 SKScene 中的边界和框架。我可以看到“self.size.width”实际上与“self.frame.size.width”相同。同样,'self.size.height' 与'self.size.height' 相同(在我的模拟器中,宽度为 1024,高度为 768。但是,如果我做 self.view.bounds.size.width,那么我得到 375。同样,self.view.bounds.size.height 给我 667。所以我的问题是,这个“ View ”(SKView)是如何在我的代码中设置的?我没有任何东西可以设置它。

字面意思是:

class GameScene: SKScene {

override func didMoveToView(view: SKView) {
// prints Optional(375.0) Optional(667.0)
print("\(self.view?.bounds.size.width) \(self.view?.bounds.size.height)")

// prints 1024.0 768.0
print("\(self.size.width) \(self.size.height)")
}
}

再次感谢您的帮助!

最佳答案

啊...好的...我找到了问题的答案(部分)。在我的项目中,我仍然有 GameScene.sks(由 Xcode 为新游戏项目生成)。

在我的 GameViewController 中,我按如下方式构造了 GameScene:

GameScene(fileNamed: "GameScene")

如果我把它改成:

GameScene(size: view.bounds.size)

然后一切正常。打印的尺寸(在我的 didMoveToView 中)现在是:

Optional(375.0) Optional(667.0)
375.0 667.0

这是预期的,因为我用那个维度构建了我的 GameScene。不过,我对这个“界限”的维度的问题仍然存在。它是固定的吗?我在 iPhone 6s 上运行我的模拟器...

关于ios - SpriteKit 定位和坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com