我是SpriteKit和Swift的新手,我有以下问题:
我启动一个新的SpriteKit Swift项目,然后打开
class GameScene: SKScene
有方法
override func didMoveToView(view: SKView)
现在我要创建一个与iPhone屏幕(横向或纵向)完全相同的worldBorder 它应该像在例如...球无法脱身。
我做了类似的事情:
let worldBorder = SKPhysicsBody(edgeLoopFromRect: self.frame)
self.physicsBody = worldBorder
但这不起作用,它比电话中的模拟部分更大。
如何制作?
编辑: 我的GameScene有这个属性,我的iphone的高度作为边框工作。但是在portraite模式中,边界是左右两边。
答案 0 :(得分:1)
由于worldBorder是一个物理实体,它可能会受到重力影响并从屏幕上掉下来。试着固定它:
worldBorder.physicsBody?.pinned = true
另一个选择是创建几个节点并将它们放置在框架周围的边框上。
答案 1 :(得分:0)
尝试这样做:
override func didMoveToView(view: SKView) {
let worldBorder = SKPhysicsBody(edgeLoopFromRect: view.frame)
self.physicsBody = worldBorder
}
我认为调用self.frame
时didMoveToView
可能没有调整大小。此外,如果您支持纵向和横向等多个方向,则可能需要处理过渡到其他尺寸。