我有一个游戏,圆圈是这样上下移动的:
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/