gpt4 book ai didi

Swift:从两个变量名中引用特定变量

转载 作者:行者123 更新时间:2023-11-28 11:16:19 24 4
gpt4 key购买 nike

我正在处理一个包含 20 个 Sprite 的项目,我注意到有很多代码重复。我的 Sprite 被命名为:sprite1、sprite2、sprite3....所以我正在寻找一种方法来引用基于 2 个变量的 Sprite 。第一个只是“sprite”,第二个是整数,所以我可以随时更改或循环遍历一个范围。有可能做这样的事情吗?随机示例:

x = 1
while x <= 10 {
sprite & x.physicsBody.affectedByGravity = true
x++
}

代替:

sprite1.physicsBody.affectedByGravity = true
sprite2.physicsBody.affectedByGravity = true
sprite3.physicsBody.affectedByGravity = true
sprite4.physicsBody.affectedByGravity = true
sprite5.physicsBody.affectedByGravity = true

等等...

最佳答案

这可以很简单:

for sprite in [sprite1, sprite2, sprite3, /* ... */] {
sprite.physicsBody.affectedByGravity = true
}

但是,拥有一堆局部变量(或实例变量),如 sprite1sprite2 等表明您在某些方面没有充分利用您的工具另一种方式。这些 Sprite 有什么意义?有没有一种方法可以使用场景结构来更好地管理它们?

例如,如果您要为其打开重力的所有节点都是同一父节点的子节点,您可以改为执行以下操作:

for sprite in someContainerNode.children {
sprite.physicsBody.affectedByGravity = true
}

或者,如果您的场景中有一些节点子集需要执行此操作,您可以为它们指定相同的名称(例如,在 Xcode 的 SpriteKit 场景编辑器中)并使用它来查找它们:

scene.enumerateChildNodesWithName("needsGravity") { node, stop in
node.physicsBody.affectedByGravity = true
}

关于Swift:从两个变量名中引用特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com