gpt4 book ai didi

iphone - Float 不可转换为 CGFloat,CGFloat 不可转换为 Float

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:50 24 4
gpt4 key购买 nike

我在 XCode 6 beta 4 上使用 swift 时遇到问题,这让我发疯 我正在 IOS 8 中开发游戏并且我遵循了教程但我得到了这个:Float is not convertible to CGFloat 然后当我重铸时作为 CGFloat,我得到另一个。这是代码:

 override func didMoveToView(view: SKView) {
/* Setup your scene here */


//physics
self.physicsWorld.gravity = CGVectorMake(0.0, -5.0)


// Bird
var birdTexture = SKTexture(imageNamed: "kirby")
birdTexture.filteringMode = SKTextureFilteringMode.Nearest
bird.setScale(0.5)
bird.position = CGPoint(x: self.frame.size.width * 0.35, y: self.frame.size.height * 0.6)

bird.physicsBody = SKPhysicsBody(circleOfRadius:bird.size.height/2)
bird.physicsBody.dynamic = true
bird.physicsBody.allowsRotation = false

self.addChild(bird)

//ground
ground.setScale(2.0)
ground.position = CGPointMake(self.size.width/2, ground.size.height/2)


ground.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(self.frame.size.width , ground.size.height))

ground.physicsBody.dynamic = false
self.addChild(ground)

//pipes

//create pipes
//^

//movement of the pipes
let distanceToMove = CGFloat(self.frame.size.width + 2.0 * pipeUp.texture.size().width)

let movePipe = SKAction.moveByX(-distanceToMove, y: CGFloat(0.0), duration: NSTimeInterval(0.01) * distanceToMove) <----- this line is the problem

}

怎么回事,我移线:

CGFloat(self.frame.size.width + 2.0 * pipeUp.texture.size().width)

我得到第二个错误,然后重铸:

Float(CGFloat(self.frame.size.width + 2.0 * pipeUp.texture.size().width))

Float(self.frame.size.width + 2.0 * pipeUp.texture.size().width)

给我第一个,所以 swift 在这里想要什么,这太疯狂了。 catch 22?有帮助吗?

编辑:如果有帮助,我在 mavericks OS X 10.9.4 (13E28) 上使用 2009 年末的 13 英寸 Mac,Intel Core 2 Duo。我看到有关构建选项的一些信息可能会影响 float 类型,但我不知道它们在哪里。

最佳答案

这将被解释为一个 CGFloat 而不是一个 NSTimeInterval 因为你施放然后相乘:

let movePipe = SKAction.moveByX(-distanceToMove, y: 0.0, duration: NSTimeInterval(0.01) * distanceToMove)

尝试相乘然后转换为 NSTimeInterval:

let movePipe = SKAction.moveByX(-distanceToMove, y: 0.0, duration: NSTimeInterval(0.01 * distanceToMove))

此外,正如已经建议的那样,您不需要转换距离。以下将正常工作:

let distanceToMove = self.frame.size.width + 2.0 * pipeUp.texture.size().width

关于iphone - Float 不可转换为 CGFloat,CGFloat 不可转换为 Float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24951634/

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