使玩家在特定位置重生时出现问题

时间:2019-09-27 18:38:21

标签: box2d

我有一个随身运动的球员。如果我的玩家死于任何原因(例如被敌人或子弹击中),我会隐藏玩家一段时间,直到未按下重启键为止。如果按下重启键,则使用同一玩家实例并将玩家的位置和角度更改为我希望玩家重生的理想位置。

玩家可以正确地重生到所需的位置,但是如果玩家在死亡之前有任何线性速度或作用力,它会移动一点直到其速度变为0。

//In contact listner when player health <0

    bodyB.active=false;
    bodyB.dead=true;
    let filter=bodyB.bodyFixture.GetFilterData();
    filter.maskBits =0;
    filter.groupIndex = -1;
    bodyB.bodyFixture.SetFilterData(filter);

    filter=bodyB.headFixture.GetFilterData();
    filter.maskBits =0 ;
    filter.groupIndex = -1;
    bodyB.headFixture.SetFilterData(filter);
    filter=null;

    bodyB.health=100;
    bodyB.powerUps={};
    bodyB.score=0;

    //On respawn
    players[p_present].body.SetPositionAndAngle( new b2Vec2(150/scale,150/scale),0 );
    players[p_present].body.SetLinearVelocity(new b2Vec2(0,0));

我的问题是如何限制播放器在重生时不移动。

我尝试应用setLinearVelocity(new b2Vec2(0,0)),但是它什么也没做。

0 个答案:

没有答案