我正在更新swift 3的代码.我已经为swift 2中的spritekit对象创建了一个自定义路径.但是,现在我得到一个编译器错误:
Nil与预期的参数类型'Unsafe Pointer CGAffineTransform'不兼容
let offsetX = player.size.width * player.anchorPoint.x
let offsetY = player.size.height * player.anchorPoint.y
let path = CGMutablePath()
CGPathMoveToPoint(path, nil, 10 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 10 - offsetX, 0 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 0 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 28 - offsetX, 40 - offsetY)
CGPathAddLineToPoint(path, nil, 18 - offsetX, 46 - offsetY)
CGPathAddLineToPoint(path, nil, 6 - offsetX, 36 - offsetY)
CGPathAddLineToPoint(path, nil, 6 - offsetX, 18 - offsetY)
path.closeSubpath()
Run Code Online (Sandbox Code Playgroud)
错误是在添加到路径时在第二个参数中传递nil.我尝试传入一个不安全的指针,如下所示:
var tr = CGAffineTransform.identity
CGPathMoveToPoint(path, &tr, 10 - offsetX, 16 - offsetY)
....
Run Code Online (Sandbox Code Playgroud)
但后来又有了一个奇怪的错误.
CGPathMoveToPoint不可用.使用move(to:transform :)
但是,没有带参数名称的移动函数.然而,有一个举动(toParent:).
Nat*_*jan 15
大多数语法在Swift 3中都有所改变,但是他们没有删除任何API方法(比如CGPathMoveToPoint),它只是重命名如下.
let path = CGMutablePath()
path.move(to: CGPoint(x: 10.0, y: 10.0))
path.addLine(to: CGPoint(x: 10.0, y: 10.0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6431 次 |
| 最近记录: |