加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 17:40:41 所属栏目:百科 来源:网络整理
导读:我在XCode 6 beta 4上有一个快速的问题,让我疯了我在 IOS 8开发游戏而且我已经按照教程但我得到了这个:Float不能转换为CGFloat然后当我重铸为CGFloat时得到另一个.这是代码: override func didMoveToView(view: SKView) { /* Setup your scene here */ //p
我在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读