Swift-太空入侵者(外星人显示循环不工作)

Swift-太空入侵者(外星人显示循环不工作),swift,sprite-kit,Swift,Sprite Kit,我目前正试图制作一个太空入侵者游戏,我已经让我的飞船移动工作,目前正在我的外星人显示循环工作。 我很接近,但由于某种原因,我的屏幕一直是空白的,没有外星人出现。有人能帮忙吗?这是我到目前为止所拥有的 //Add and display given amount of aliens... while displayAliens == true { aliens.append(SKSpriteNode(texture: SKTexture(imageNamed: "Class

我目前正试图制作一个太空入侵者游戏,我已经让我的飞船移动工作,目前正在我的外星人显示循环工作。 我很接近,但由于某种原因,我的屏幕一直是空白的,没有外星人出现。有人能帮忙吗?这是我到目前为止所拥有的

//Add and display given amount of aliens...
    while displayAliens == true {
        aliens.append(SKSpriteNode(texture: SKTexture(imageNamed: "ClassicAlien")))
        self.addChild(aliens[displayLoopCounter])
        //Location
        aliens[displayLoopCounter].position.x = 0
        aliens[displayLoopCounter].position.y = 0
        aliens[displayLoopCounter].position.x = CGFloat(displayLoopCounter + 25)
        displayLoopCounter += 1
        //Have we run out of aliens yet?
        if displayLoopCounter > alienAmount {
            displayAliens = false
        }

}
}

无法100%确定问题在哪里,但您的循环会更干净,因为:

//Add and display given amount of aliens...
    while (alienAmount >= displayLoopCounter) {
        aliens.append(SKSpriteNode(texture: SKTexture(imageNamed: "ClassicAlien")))
        self.addChild(aliens[displayLoopCounter])

   //Location
        aliens[displayLoopCounter].position.y = 0
        aliens[displayLoopCounter].position.x = CGFloat(displayLoopCounter + 25)
        displayLoopCounter += 1

    }

也许在打电话给addChildThank之前试着设置位置,但是这个错误仍然存在。我想我的循环逻辑可能有问题。我在下面贴了一个更好的循环。你知道你观点的来源吗?0,0是视图的中间还是左上角?也许将x和y设置为25,25的测试值,然后看看会发生什么。我已经尝试过你的循环,0,0的原点将设置在屏幕的中间。我已经得到了我的图像显示,但我仍然不能得到一个适当的设置,甚至在屏幕上外星人之间的间隔。谢谢你的帮助,如果你有更多的建议,请告诉我。有什么间隔问题吗?另外,您是尝试只使用一条水平线,还是同时使用多个垂直行?我需要更多的信息来进一步帮助你。如果您的显示问题得到解决,如果您接受答案,我们也将不胜感激