为什么repeatForever不在spritekit中工作,swift3

为什么repeatForever不在spritekit中工作,swift3,swift3,sprite-kit,sprite,Swift3,Sprite Kit,Sprite,这是我的测试代码: let cloud1 = SKSpriteNode(imageNamed: "cloud1") cloud1.position = CGPoint(x: size.width + cloud1.size.width/2, y: size.height / 2) addChild(cloud1) let wait = SKAction.wait(forDuration: 0.25) let actionMove = SKAction.m

这是我的测试代码:

    let cloud1 = SKSpriteNode(imageNamed: "cloud1")
    cloud1.position = CGPoint(x: size.width + cloud1.size.width/2, y: size.height / 2)
    addChild(cloud1)
    let wait = SKAction.wait(forDuration: 0.25)

    let actionMove = SKAction.move(to: CGPoint(x: -cloud1.size.width/2, y: cloud1.position.y), duration: 2.0)

    let sequence = SKAction.sequence([actionMove, wait])

    let repeatAction = SKAction.repeatForever(sequence)
    cloud1.run(repeatAction)

此云只运行一次,请告诉我解决方案。基于您的问题,我想我可能有一个解决方案

它到达某个目的地后不移动的原因是您正在使用
moveTo
。下面是我根据您提供的代码制作的一个小示例

var cloudSpeed = CGFloat(12) //this can be any number you want, the higher the faster


    let cloud1 = SKSpriteNode(imageNamed: "cloud1")
    cloud1.position = CGPoint(x: size.width/2, y: size.height / 2)
    addChild(cloud1)
    let wait = SKAction.wait(forDuration: 0.25)

    let actionMove = SKAction.move(by: CGVector(dx:-10 * ballSpeed, dy:0), duration: 1) //experiment with the dx value. If you want the cloud to travel from right to left make it a negative

    let sequence = SKAction.sequence([actionMove, wait])

    let repeatAction = SKAction.repeatForever(sequence)
    cloud1.run(repeatAction)

希望这能解决你的问题

一旦移动到
CGPoint(x:-cloud1.size.width/2,y:cloud1.position.y)
,您希望移动到哪里?我只希望它再次从左中向右移动。有什么办法能让它这么做吗?我看不到你的动作序列中有这样的动作。你让它向左移动,这就是你让它做的。我让它向左移动,然后等5秒钟,然后让它再向左移动,再向左移动。。我该怎么编码?感谢使用
移动(通过:)
,而不是
移动(到:)