好的。我正在尝试使用我自己的精灵来编写Flappy Bird的演绎,以获得乐趣和学习。我一直在实施物理学,现在我正试图应用冲动并为某些物理机构定义速度。我知道物理学是有效的,因为我的幽灵精灵倒在了地上,但是我有一些问题对幽灵精灵实施速度和冲动(让它跳起来再次下降)。
这是我的代码:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
Ghost.physicsBody?.velocity = CGVector(0, 0)
Ghost.physicsBody?.applyImpulse(CGVector(0, 90))
}
我在使用CGVector的两行中收到错误。我相信swift的早期版本是CGVectorMake。错误如下:
Argument labels '(_, _)' do not match any available overloads
我真的不确定这意味着什么,或者如何解决这个问题。如果有必要,我可以链接更多的代码,但它是相当冗长的。我感谢任何建议或提示。这是使用最新的swift和Xcode迄今为止。 Xcode 9.0和Swift 4.0.3。
答案 0 :(得分:1)
查看the documentation for CGVector,我看到了表单的构造函数:
init(dx: Double, dy: Double)
这意味着您不需要输入CGVector(0, 0)
,而是需要CGVector(dx: 0, dy: 0)
之类的内容。
为了将来参考,当您看到一个下划线的标签时,它通常意味着“无标签” - 您将查找您在没有前面名称的情况下传递的参数值,并添加API所期望的名称。 / p>
答案 1 :(得分:0)
您的CGVector
init缺少参数标签。您可以通过更改为
CGVector(dx: 0, dy: 90)
作为参考,请查看有关这些错误的Apple文档:https://developer.apple.com/documentation/coregraphics/cgvector