【发布时间】:2015-06-14 23:49:54
【问题描述】:
以下代码可识别场景的底部和顶部边缘,并且球按预期反弹。然而,场景的左右边缘总是被破坏。如果施加足够的力,球会离开屏幕,然后最终返回。就好像场景的边缘超出了 iphone 模拟器窗口的边缘。
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView){
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
backgroundColor = UIColor.cyanColor()
var ball = SKSpriteNode(imageNamed: "ball")
ball.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
self.addChild(ball)
ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.frame.size.height/2)
let push = CGVectorMake(10, 10)
ball.physicsBody.applyImpulse(push)
}
}
我认为这与 .sks 文件有关,因为在那里设置了尺寸,如果我更改这些尺寸,它会反映在游戏中。任何人都知道如何做到这一点,所以这行代码优先于 .sks 文件尺寸?这样,它将是动态的,并且可以在不同的设备上运行。
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
我在这里发现了同样的问题,但从未得到回答: Swift physicsbody edge recognition issue
另外,我是 iOS 应用程序开发的新手,如果答案很明显而我错过了,请原谅我。
【问题讨论】:
标签: ios swift sprite-kit cgrect skphysicsbody