Swift moveBy方法将不采用CGFloat参数

问题描述 投票:0回答:1
if gameStarted == false {
    let spawn = SKAction.run({
        () in

        self.createPlatforms()

    })

    let delay = SKAction.wait(forDuration: 1.5)
    let spawnDelay = SKAction.sequence([spawn, delay])
    let spawnDelayForever = SKAction.repeatForever(spawnDelay)
    self.run(spawnDelayForever)

    let distance = CGFloat(self.frame.width + platformPair.frame.width)
    let movePlatforms = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * Double(distance))
    let removePlatforms = SKAction.removeFromParent()
    moveAndRemove = SKAction.sequence([movePlatforms, removePlatforms])

    player.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
    player.physicsBody?.applyImpulse(CGVector(dx: 0,dy: 150))

} else {
    player.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
    player.physicsBody?.applyImpulse(CGVector(dx: 0,dy: 150))
}

我在x let movePlatforms函数中由于moveBy值不断收到此错误:

无法将类型'CGFloat'的值转换为预期的参数类型'CGVector'

距离是CGFloat,并且x方法中的moveBy参数是CGFloat。不知道为什么它不起作用。

swift
1个回答
0
投票

您在此行上缺少右括号:

let movePlatforms = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * Double(distance)))
© www.soinside.com 2019 - 2024. All rights reserved.