У меня проблема с 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), и она продолжает медленно меняться? Я этого не понимаю. Почему такое поведение происходит?