C++ 与其他精灵碰撞后的sprite跳跃

C++ 与其他精灵碰撞后的sprite跳跃,c++,box2d,cocos2d-x,C++,Box2d,Cocos2d X,使用listener one进行碰撞后,sprite1应被销毁,而另一个sprite2将跳转。我销毁了sprite1,但是sprite2在与sprite1碰撞后没有跳跃。这是我的密码: Update(float dt) { if(collisionOccurs == 1) { CCJumpTo * myJump = CCJumpTo::create(1, ccp(winSize.width/6,winSize.height/8),winSize.heigh

使用listener one进行碰撞后,
sprite1
应被销毁,而另一个
sprite2
将跳转。我销毁了
sprite1
,但是
sprite2
在与sprite1碰撞后没有跳跃。这是我的密码:

Update(float dt) {   
    if(collisionOccurs == 1)
    {
         CCJumpTo * myJump = CCJumpTo::create(1, ccp(winSize.width/6,winSize.height/8),winSize.height/2 ,1);
         Sprite2->runAction(myJump);

         collisionOccurs = 0;

         if(Sprite1 != NULL && BodyofSprite1 != NULL)
         {
             BodyofSprite1->SetActive(false);
             Sprite1->removeFromParentAndCleanup(true);
         }
    }
 }

不能将物理与移动/旋转/跟随动作相结合。它们是更改节点位置和旋转的两种固有的不兼容方式,会导致冲突或意外行为。如果你想让精灵跳跃,改变它的身体速度或者施加一个脉冲。我用的是线性脉冲。但若我同时在身体上施加线性脉冲,身体的速度会变得很高。身体会离开屏幕。这就是我对LinearImpulse的问题。那么,应用LinearImpulse或LinearVelocity对我更有好处的是什么呢?我想要一个恒定的身体速度,并且身体的运动在屏幕上受到限制。怎么可能呢??还有更好的主意吗?如果你想让身体下降,冲动需要一个相反的力(也称为重力)。恒定运动=如果需要,将n帧的速度设置为相同的值。除了用物理力/冲量移动物理物体或直接改变速度之外,别无选择。是的,它需要很多调整才能正确。谢谢你。如何限制身体在屏幕上的移动区域??意味着身体不会上升超过屏幕的一半高度?