我无法理解这行代码

时间:2012-01-06 19:32:41

标签: iphone objective-c cocos2d-iphone

正如标题所说..

playerVelocity.x = playerVelocity.x  *deceleration +acceleration.x *sensitivity;

我不明白这里发生了什么。或者它是如何可能的。如何获取速度并乘以速度减速然后再次添加速度。这对我来说毫无意义。

我正在阅读它的方式是..我有playerVelocity并将它乘以实际减慢它的东西,然后我再次添加它。

叹息,抱歉,我对这段简单的代码感到非常沮丧,除了我之外,对于每个人来说这似乎都很容易。

有人会介意为我澄清一下吗?

2 个答案:

答案 0 :(得分:3)

deceleration是描述在没有加速度的情况下速度如何减慢的系数。 sensitivity是描述acceleration如何影响velocity的系数。那么这条线正在做的是根据这些系数更新速度。可能它发生在某种定时循环中,因此速度会在程序中的这些步骤中适当变化。没有后半部分,它只会是:

velocity = velocity * deceleration;

如果deceleration小于1,这种关系意味着速度最终将朝向0.添加我认为用户的输入加速度,你得到你的代码:

velocity = velocity * deceleration + acceleration * sensitivity;

答案 1 :(得分:3)

考虑定期应用的velocity = velocity*deceleration;只是提供恒定的减速度。然后以相同的规则间隔添加到acceleration*sensitivity只需将一些可变加速度应用于减速对象。

除非用户输入“催促”,否则网络将缓慢减速。