通过引用传递数组 [Swift 3 Xcode 8]
Pass Array By Reference [Swift 3 Xcode 8]
我创建了一个项目符号 class,我希望它包含一个名为 locatedInArray 的属性。 locatedInArray 存储了子弹存储在 GameScene class 中的数组的引用。唯一的问题是,当我添加打印语句时,它显示 locatedInArray 与游戏场景中的实际数组相比具有不同的值。无论如何通过引用而不是值传递数组?
通过函数调用传递给项目符号实例的数组。
bullet.shoot(from: self.mainCharacter, to: "right", fromPercentOfWidth: 0.5, fromPercentOfHeight: 0.65, addToArray: &playerBulletArray, inScene: self)
数组被指定为项目符号对象内的属性。
func shoot(from character: SKSpriteNode, to direction: String, fromPercentOfWidth xPercent: CGFloat, fromPercentOfHeight yPercent: CGFloat, addToArray array: inout[SKBulletsNode?], inScene scene: GameScene) {
self.gameScene = scene
self.locatedInArray = array
}
您能否创建一个包含 SKBulletsNode
数组的 class 作为 属性 并将其中一个对象传递给函数?
像这样:
class BulletArray {
var bullets : [SKBulletsNode]?
}
func shoot(from character: SKSpriteNode, to direction: String, fromPercentOfWidth xPercent: CGFloat, fromPercentOfHeight yPercent: CGFloat, addToArray array: inout BulletArray , inScene scene: GameScene) {
self.gameScene = scene
self.locatedInArray = array
}
查看此 link 了解更多信息:
Swift: Pass array by reference?
我创建了一个项目符号 class,我希望它包含一个名为 locatedInArray 的属性。 locatedInArray 存储了子弹存储在 GameScene class 中的数组的引用。唯一的问题是,当我添加打印语句时,它显示 locatedInArray 与游戏场景中的实际数组相比具有不同的值。无论如何通过引用而不是值传递数组?
通过函数调用传递给项目符号实例的数组。
bullet.shoot(from: self.mainCharacter, to: "right", fromPercentOfWidth: 0.5, fromPercentOfHeight: 0.65, addToArray: &playerBulletArray, inScene: self)
数组被指定为项目符号对象内的属性。
func shoot(from character: SKSpriteNode, to direction: String, fromPercentOfWidth xPercent: CGFloat, fromPercentOfHeight yPercent: CGFloat, addToArray array: inout[SKBulletsNode?], inScene scene: GameScene) {
self.gameScene = scene
self.locatedInArray = array
}
您能否创建一个包含 SKBulletsNode
数组的 class 作为 属性 并将其中一个对象传递给函数?
像这样:
class BulletArray {
var bullets : [SKBulletsNode]?
}
func shoot(from character: SKSpriteNode, to direction: String, fromPercentOfWidth xPercent: CGFloat, fromPercentOfHeight yPercent: CGFloat, addToArray array: inout BulletArray , inScene scene: GameScene) {
self.gameScene = scene
self.locatedInArray = array
}
查看此 link 了解更多信息: Swift: Pass array by reference?