Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sprite kit 复制SpriteKit节点位置_Sprite Kit - Fatal编程技术网

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))