如何解决只需一次又一次地施加重力
| 我的代码将重力应用到我的世界上的任何身体上,并且我有一个球,它在重力作用下掉落后,我需要它再次上升并在重力作用下掉落。 所以它掉下来了,但是当我放回去的时候,它不会再掉下来了。为什么? 我每帧都这样称呼::-(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 举报,一经查实,本站将立刻删除。