【发布时间】:2016-07-07 21:37:50
【问题描述】:
我遇到了 SKSpriteNode 的问题。在我将它放在场景中的某个位置之后,它的位置开始变化非常缓慢。这只发生在我将 SKPhysicsBody 附加到它时,但不是没有它,所以它与此相关。
这是我放置的图块的代码:
import Foundation
import SpriteKit
class Tile : SKNode {
var sprite = SKSpriteNode(imageNamed: "grassMid")
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented");
}
override init() {
super.init();
self.sprite.physicsBody = SKPhysicsBody(texture: self.sprite.texture!, size: CGSize(width: 32.0, height: 32.0))
self.sprite.physicsBody?.dynamic = false
self.sprite.physicsBody?.collisionBitMask = 0x0
self.addChild(sprite)
}
}
这是放置对象的代码:
func addNewTile(position: CGPoint) {
let t = Tile()
t.sprite.position = getClosestPointInGrid(position)
t.sprite.size = CGSize(width: 32.0, height: 32.0)
if(!doesPositionContainTile(t.sprite.position)) {
self.addChild(t)
}
print(t.sprite.position)
}
例如:我在位置 (256, 32) 放置了一个图块,然后位置很快变为 (255.990264892578, 31.9987831115723) 并且一直在缓慢变化?我不明白。为什么会发生这种行为?
【问题讨论】:
标签: swift macos sprite-kit skspritenode skphysicsbody