Sprite kit 复制SpriteKit节点位置
在现有节点所在的场景中添加新节点时遇到问题。添加它们时,我将Sprite kit 复制SpriteKit节点位置,sprite-kit,Sprite Kit,在现有节点所在的场景中添加新节点时遇到问题。添加它们时,我将.position属性设置为相同,但它们显示在场景的原点,而不是现有节点的位置 我正在建立一个非常简单的小行星像游戏在SpriteKit。我的游戏场景中有一种添加小行星的方法: // MARK: - Asteroids func insertAsteroids(count: Int, size: AsteroidSize, newPosition: CGPoint?) { for i in 0 ..< initialAst
.position
属性设置为相同,但它们显示在场景的原点,而不是现有节点的位置
我正在建立一个非常简单的小行星像游戏在SpriteKit。我的游戏场景中有一种添加小行星的方法:
// MARK: - Asteroids
func insertAsteroids(count: Int, size: AsteroidSize, newPosition: CGPoint?) {
for i in 0 ..< initialAsteroidCount {
let asteroid = Asteroid(size: size)
if let position = newPosition {
asteroid.position = position
} else {
asteroid.position = randomPositionOnScene()
}
self.addChild(asteroid)
}
}
关键是oldsetoid.position
。我可以println()
即使我强制它们进入已知位置,它们仍会出现在原点:
self.insertAsteroids(newAsteroidCount, size: newSize, newPosition: CGPoint(x: 40, y: 50))
我是否在坐标系上犯了错误,或者这与在SkphysicContactDelegate方法中向场景添加新节点有关?我发现了错误
找到了。无法在模拟树时修改树。也就是说,您不能在didBeginContact()
方法中修改树,但可以在didSimulatePhysics()
中设置标志并修改树
self.insertAsteroids(newAsteroidCount, size: newSize, newPosition: CGPoint(x: 40, y: 50))