Ios Cocos2D重力?

Ios Cocos2D重力?,ios,cocos2d-iphone,gravity,Ios,Cocos2d Iphone,Gravity,我真的很想在比赛中加入地心引力。我知道每个人都说使用Box2D,但在我的情况下,我不能。我需要使用CoCox2D来计算重力 我知道Cocos2D没有内置任何重力API,所以我需要手动执行一些操作。问题是,网上没有任何教程或示例显示这一点 有人能告诉我他们做了什么吗?或者有人能一步一步地解释一下如何应用非恒定的重力(下落时会稍微变强的重力) 我认为这将帮助很多人,他们正面临着与我相同的问题 谢谢 重力只不过是在每一个物理步骤中施加在物体上的恒定速度。请查看此示例性更新方法: -(void) upd

我真的很想在比赛中加入地心引力。我知道每个人都说使用Box2D,但在我的情况下,我不能。我需要使用CoCox2D来计算重力

我知道Cocos2D没有内置任何重力API,所以我需要手动执行一些操作。问题是,网上没有任何教程或示例显示这一点

有人能告诉我他们做了什么吗?或者有人能一步一步地解释一下如何应用非恒定的重力(下落时会稍微变强的重力)

我认为这将帮助很多人,他们正面临着与我相同的问题


谢谢

重力只不过是在每一个物理步骤中施加在物体上的恒定速度。请查看此示例性更新方法:

-(void) update:(ccTime)delta
{
   // use a gravity velocity that "feels good" for your app
   const CGPoint gravity = CGPointMake(0, -0.2);

   // update sprite position after applying downward gravity velocity
   CGPoint pos = sprite.position;
   pos.y += gravity.y;
   sprite.position = pos;
}
每一帧精灵y的位置都会减少。这是一个简单的方法。为了获得更真实的效果,您需要为每个移动对象创建一个速度向量,并将重力应用于速度(这也是一个点)

其效果是,随着时间的推移,速度在向下的y方向上增加。这将使物体向下加速越来越快,它“下落”的时间越长

但是,通过修改速度,仍然可以更改对象的大致方向。例如,为了使角色跳跃,您可以设置
速度。y=2.0
,由于重力的作用,它会向上移动,然后再次向下移动


这仍然是一种简化的方法,但在不使用“真正”物理引擎的游戏中非常常见。

如果需要,我将添加奖励!我懂了。我还是不明白是什么设定了速度的值。在本例中,它看起来总是0!还有一件事,我在UIAccelerator方法中设置了精灵的位置。所以我应该在我的UIAccelerator方法中这样做,如果没有,我如何在我的UIAccelerator方法中只设置我的CCSprite的X位置?谢谢你的帮助。一旦你回答了这些问题,我将投票并接受!我意识到速度y实际上不是0。不管怎样,我把它放在我的UIAccelerator方法中,可以吗?它给出了重力在Cocos2d中如何工作的清晰概念。我在“”上发布了一个问题,但我认为我可以通过手动velocity更新来解决这个问题。谢谢@learncoso2d
-(void) update:(ccTime)delta
{
   // use a gravity velocity that "feels good" for your app
   const CGPoint gravity = CGPointMake(0, -0.2);

   // update velocity with gravitational influence
   velocity.y += gravity.y;

   // update sprite position with velocity
   CGPoint pos = sprite.position;
   pos.y += velocity.y;
   sprite.position = pos;
}