【发布时间】:2014-08-02 11:10:04
【问题描述】:
当我从屏幕 debugging with kView.showsPhysics = true 更改 GameScene (from default 0,0 to 0.5,0.5) 的 anchorPoint @ 精灵 disappeared 的物理主体时。
它仍然存在,因为每艘船都相互碰撞,但看起来physicsBody 的位置发生了偏移(超出屏幕)。
为什么此更改会影响场景子对象的物理体?
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
physicsWorld.gravity = CGVector(0, 0)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
let sprite = SKSpriteNode(imageNamed:"Spaceship")
sprite.physicsBody = SKPhysicsBody(circleOfRadius: 100)
sprite.xScale = 0.5
sprite.yScale = 0.5
sprite.position = location
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
sprite.runAction(SKAction.repeatActionForever(action))
self.addChild(sprite)
}
}
}
【问题讨论】:
-
这很奇怪,我刚刚发现在 iOS 8.0 模拟器中它可以工作(physicsBody 不受影响),但在 7.1 中,physicsBody 被移到了 SKScene 的左下角
-
可能是旧 SDK 中的一个错误,因为它在 10.9 上是一样的,而且很烦人。
标签: ios swift sprite-kit skscene