【发布时间】:2014-12-01 18:40:39
【问题描述】:
如何将我的 starsSqArray 添加到我的更新函数中的 for 循环中,以获取所有 SKSpriteNodesfor _starsSq1 以便所有星星一起移动而不是单独移动?
现在我的 Swift 类不断返回一个错误,说 _starsSqArray 没有位置(我的代码被窃听了)。我的目标是抓住绘制的星星并一次将它们向下移动。
import SpriteKit
class Stars:SKNode {
//Images
var _starsSq1:SKSpriteNode?
//Variables
var starSqArray = Array<SKSpriteNode>()
var _starSpeed1:Float = 5;
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init() {
super.init()
println("stars plotted")
createStarPlot()
}
/*-------------------------------------
## MARK: Update
-------------------------------------*/
func update() {
for (var i = 0; i < starSqArray.count; i++) {
_starsSq1!.position = CGPoint(x: self.position.x , y: self.position.y + CGFloat(_starSpeed1))
}
}
/*-------------------------------------
## MARK: Create Star Plot
-------------------------------------*/
func createStarPlot() {
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
for (var i = 0; i < 150 ; i++) {
_starsSq1 = SKSpriteNode(imageNamed: "starSq1")
addChild(_starsSq1!)
//starSqArray.addChild(_starsSq1)
var x = arc4random_uniform(UInt32(screenSize.width + 400))
var y = arc4random_uniform(UInt32(screenSize.height + 400))
_starsSq1!.position = CGPoint(x: CGFloat(x), y: CGFloat(y))
}
}
}
【问题讨论】:
-
我不知道 Sprite 节点,但我想如果你将在场景或视图中添加所有星星并将场景向下移动,那么结果将是你想要的。跨度>
-
您能否提供更多详细信息,例如错误信息?
-
您是否尝试将它们作为子节点添加到一个父节点并移动该父模式?
标签: ios arrays swift sprite-kit