Проблема с возрождением игрока в определенном месте - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть игрок, который движется с применением силы.Если мой игрок умирает по какой-либо причине (например, от удара противника или пули), я скрываю игрока на некоторое время, пока не будет нажата перезагрузка. Если нажата перезагрузка, я использую тот же экземпляр игрока и меняю позицию и угол наМоя желаемая позиция, в которой я хочу, чтобы игрок возродился.

Игрок правильно перерождается в нужной позиции, но если игроку оставалось какое-то количество линейной скорости или силы, оставшейся до его смерти, он немного перемещается до своей скоростидоходит до 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)), но егоничего не делать.

...