gpt4 book ai didi

swift - 为什么对随机函数的调用在序列中不起作用?

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:48 25 4
gpt4 key购买 nike

我正在尝试为一个简单的对象生成一个随机的 X 位置,以便让它在 Swift SpriteKit 游戏的场景中来回弹跳。 repeatForever Action 应该生成一个随机值,然后将对象(一个圆圈)多次移动到左右不同的位置。但是,它只作用一次。就好像正确运行的随机函数只被调用一次,然后该 Action 只是继续将对象永远移动到同一位置。

let circle = SKSpriteNode(imageNamed: "circle")
circle.run(SKAction.repeatForever(SKAction.move(to:
CGPoint(x: random(min: minCircleX, max: maxCircleX),
y: scene.size.height*0.5),
duration: 0.5)))

圆圈只移动一次,移动到一个位置,之后似乎再也没有移动过。我怀疑它只是一遍又一遍地移动到相同的位置。感谢您的任何建议!

最佳答案

OK,经过多方努力,实现如下:

let customAction = SKAction.customAction(withDuration: 1000)
{
circle, _ in
let newXLocation: CGPoint = CGPoint(x: random(min: minCircleX, max: maxCircleX),
y: scene.size.height*0.5)
circle.run(SKAction.move(to: newXLocation, duration: 0.5))
}
circle.run(customAction)

戴在建议匿名函数方面是正确的。 SKAction 方法 customAction 允许这样做。然后在函数内运行实际 Action ,确保每次 Action 都是随机的。非常感谢!

关于swift - 为什么对随机函数的调用在序列中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57641747/

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