iphone – Float不能转换为CGFloat,CGFloat不能转换为Float

前端之家收集整理的这篇文章主要介绍了iphone – Float不能转换为CGFloat,CGFloat不能转换为Float前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在XCode 6 beta 4上有一个快速的问题,让我疯了我在 IOS 8开发游戏而且我已经按照教程但我得到了这个:Float不能转换为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想要什么,这是疯了.赶上22?有帮助吗?

编辑:如果有任何帮助,我将在2009年底使用英特尔酷睿2双核处理器,对于小牛OS X 10.9.4(13E28).我看到有关建筑选项的一些内容可能会影响浮动类型,但我不知道它们在哪里.

解决方法

这将被解释为CGFloat而不是作为NSTimeInterval,因为你投射然后相乘:

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

尝试乘以然后转换为NSTimeInterval:

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

此外,正如已经建议的那样,您不需要施放距离.以下将工作得很好:

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

猜你在找的Xcode相关文章