我有一个游戏,圆圈是这样上下移动的:
http://i.stack.imgur.com/5zKS4.png
,而我使用.plist文件生成它们,但有点单调。是否有其他方法可以在不使用.plist文件的情况下统一生成几列圆?如有必要,将发布代码。

最佳答案

您可以编写这样的函数:

func createCirclesOnLine(line : CGFloat){
    //Set this to however low you want the circles to start.
    var currentY : CGFloat = -20.0

    //Set this to however high you want the circles to go
    let maxY = self.size.height + 100

    //Set this to the spacing you want between the circles
    let spacing : CGFloat = 50

    while currentY < maxY {
        let circle = SKShapeNode(circleOfRadius: 20)
        circle.position = CGPoint(x: line, y: currentY)
        self.addChild(circle)
        currentY += spacing
    }
}

然后把你想画圆的地方的线(想想经度)传给它:
let line = self.size.width / 2
createCirclesOnLine(line)

这就是你要找的吗?
编辑:要回答有关如何多次使用此功能的问题:
如果你想在屏幕上有多行圆圈,你可以简单地决定你想放置在哪一行(同样,考虑经度)。例如,如果我想在屏幕上显示三条等距的圆线,我将执行以下操作:
let line = self.size.width / 4
createCirclesOnLine(line)
createCirclesOnLine(line * 2)
createCirclesOnLine(line * 3)

如果您尝试此操作,但看不到所有行,则可能需要添加此
scene.size = skView.bounds.size

到ViewController.swift中的viewDidLoad方法
skView.ignoresSiblingOrder = true

因为你在纵向模式下运行应用程序。

关于swift - 有没有办法统一产生节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34375274/

10-13 03:58