【发布时间】:2016-01-09 01:06:15
【问题描述】:
当您按下按钮时,这个简单的项目会在字段的中心插入一个方形精灵,它会调用下面的 add() 函数。在模拟器中,当您添加多个精灵时,它会将其他精灵推开,因此当您多次按下它时,您会... screen shot from simulator, iphone 6, iOS 9.2,这就是我想要的行为。
但是在我的 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 只是为了看看它是否能解决问题。
标签: ios swift sprite-kit skspritenode