微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只需一次又一次地施加重力

如何解决只需一次又一次地施加重力

| 我的代码将重力应用到我的世界上的任何身体上,并且我有一个球,它在重力作用下掉落后,我需要它再次上升并在重力作用下掉落。 所以它掉下来了,但是当我放回去的时候,它不会再掉下来了。为什么? 我每帧都这样称呼::
-(void)thick:(ccTime) dt
{


    world->Step(dt,10,10);
    for(b2Body *b=world->GetBodyList(); b; b=b->GetNext()) 
    {
        if(b->GetUserData() !=NULL )
           {
               CCSprite *bondanind1=(CCSprite *) b->GetUserData();
               bondanind1.position=ccp( b->GetPosition().x * PTM_RATIO,b->GetPosition().y * PTM_RATIO  ) ;
               //bondanind.rotation=-1*CC_radians_TO_degrees(b->GetAngle());
           }

    }

    if(bondanind.position.y<0 )
    bondanind.position=ccp(300,300);


}
所以球上升并停留在那里。 引力在任何时间,每帧都不会作用于任何身体吗? 非常感谢     

解决方法

        很明显。您应该根据自己的状况而不是精灵来改变身体的位置。并更改条件也如下所示:
if (body->GetPosition().y < 0)
{
    b2Vec2 newPos(...); //put your pos
    body->SetTransform(newPos,body->GetAngle());
}
现在,您的身体在y位置值小于零之后继续下降。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。