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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |