问题描述
我正在制作一个iOS游戏,其中涉及用大炮射击炮弹。我如何获得现场的大炮数量?这是我创建,射击和删除炮弹的功能(当玩家点击屏幕时会调用此功能):
func fireCannonBall()
{
let cannonBall = SKSpriteNode(imageNamed: "cannonBall")
cannonBall.position.x = //some x-position
cannonBall.position.y = //some y-position
cannonBall.zPosition = 1
self.addChild(cannonBall)
let moveCannonBall = SKAction.moveBy(x: cos(currentAngle) * 2400,y: sin(currentAngle) * 2400,duration: 3)
let deleteCannonBall = SKAction.removeFromParent()
let cannonSequence = SKAction.sequence([cannonSound,moveCannonBall,deleteCannonBall])
cannonBall.run(cannonSequence)
}
解决方法
您可以为每个炮弹分配一个名称,例如cannonBall.name = "cannonBall"
然后您可以使用subscript(_:)
或enumerateChildNodes(withName:using:)
方法获取场景中所有的炮弹。
这里是对Apple文档的引用:Searching the Node tree