对球有冲动。但是这个球在冲动之后一直保持运动,但是我希望它能运动一点。所以这是我正在尝试的:
var impulse:CGFloat = 0.22 // bal impulse
施加冲动:
bal.physicsBody?.applyImpulse(CGVectorMake(50 * impulse, 50 * impulse))
试图限制运动:
if bal.physicsBody?.velocity.dx > impulse{
bal.physicsBody?.velocity.dx = bal.physicsBody?.velocity.dx - impulse
}
但是这最后一段代码得到了这个错误:
Value of optional type CGFloat? not unwrapped, did you mean to use ! or ?
怎么修?
最佳答案
使用 optional 时,始终应使用if let
解开它们,因为如果使用?
且值是nil,则代码将不会执行,并且您将不知道存在nil值。
像这样使用它:
var impulse:CGFloat = 0.22 // bal impulse
if let body = bal.physicsBody {
body.applyImpulse(CGVectorMake(50 * impulse, 50 * impulse))
if body.velocity.dx > impulse {
body.velocity.dx = body.velocity.dx - impulse
}
}
else
{
// bal.physicsBody is nil !
}
关于ios - 可选类型CGFloat的值?没有解包,您是说要使用!要么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30394507/