当您按下下面调用add()函数的按钮时,这个简单的项目将在该字段的中心插入一个方形Sprite。在模拟器中,当你添加多个精灵时,它会将其他人推开,所以当你按下它一堆时,你会得到... screen shot from simulator, iphone 6, iOS 9.2,这是我想要的行为。Sprite在模拟器中显示,不在设备上
但在我的iPhone上运行相同的代码,之后加入相同数量的精灵得到这个... screen show from physical iphone 6, iOS 9.2
下面是从GameScene.swift代码:
import SpriteKit
class GameScene: SKScene {
override init(size: CGSize) {
super.init(size:size)
self.physicsWorld.gravity = CGVectorMake(0, -1.0)
let worldBorder = SKPhysicsBody(edgeLoopFromRect: self.frame)
self.physicsBody = worldBorder
self.physicsBody?.friction = 0.5
}
func add()
{
let sprite = SKSpriteNode(color: UIColor.blueColor(), size: CGSize(width: 10, height: 10))
sprite.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
sprite.physicsBody = SKPhysicsBody(circleOfRadius: 8)
sprite.physicsBody?.friction = 0.0
sprite.physicsBody?.affectedByGravity = false
sprite.physicsBody?.restitution = 0.5
sprite.physicsBody?.linearDamping = 0.5
addChild(sprite)
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}
}
我要去哪里错误?如何在真正的iPhone上获得我想要的行为?
你需要使用圆形物理实体吗?这适用于'SKPhysicsBody(rectangleOfSize:sprite.size)'。 –
哇你是对的,但不幸的是我想要一个圆形物理体,因为每个精灵的图形都是圆形的,它就像一个正在成长的圆形细胞群。事实上,最初我使用的圆形SKShapeNodes具有相同的结果;我切换到SKSpriteNodes只是为了看看它是否能解决问题。 – Christopher