var posinonY:Float = Float(y) + Float(pipeDown.size.height) + Float(verticalPipeGap)
pipeDown.position = CGPointMake(0.0, Float(posinonY))
私はこのエラーを受け取ります:
「NSNumber」は「CGFloat」のサブタイプではありません」
どうして?
CGFLoatにはダブルタイプが必要です
pipeDown.position = CGPointMake(0.0, Double(posinonY))
これはOKです。
CGFloat(number)
の代わりにFloat(number)
を使用します
pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))
CGFloat
は32ビットではDouble
ではないため、CGGeometryおよびCoreGraphicsやSpriteKitなどのフレームワークを使用するのは難しくなります。このライブラリはそれを少し簡単にし、うまくいけばAppleはすぐにそれを処理します。
https://github.com/seivan/ScalarArithmetic を手伝うためにこれを書きました
ただし、依存関係なしで機能させるだけの場合は、var myFloat:CGFloat
を明示的に使用し、Double
(型が推論される数値)をCGFloat
2.0にキャストするようにしてください。ダブルで、32ビットでCG-Structs
と共に再生されません。
Swift 4のように
使用する
CGPoint(x: 12.0, y: 100.0)