Итак, сейчас я пытаюсь создать игру, в которой вы продолжаете бежать, и прыгать через препятствия. Я сделал это так, чтобы земля была сделана из двух больших блоков, и когда вы на четвертой части второго блока, первый блок перемещается перед вторым блоком. Это мой код для этого.Libgdx и Box2d Странное столкновение
public void updateGround(){
if(player.getPosition().x >= blocks[1].getGeneratePoint()){
//swap the blocks in the array
Block tempblock = blocks[0];
blocks[0] = blocks[1];
blocks[1] = tempblock;
Body body1 = blocks[0].getBody();
blocks[1].getBody().setTransform(body1.getPosition().x+(gBlockSize*2)/B2DVars.PPM,
0,0);
}
}
Я хотел бы подчеркнуть тест это, так что я сделал размер блока своего рода маленький и просто оставил его работать, но я заметил, после того, как некоторое время мой парень перестает работать. Я понял, используя b2drenderer и другие тесты, которые каким-то образом игрок вступает в контакт со вторым блоком, и он останавливается прямо там, где начинается второй блок.
Это что-то вроде ошибки или я сделал что-то не так? Я точно знаю, что ни наземный блок не изменит их значение y, либо их углы не приведут к тому, что их набор будет равен 0, и я даже попытался сделать так, чтобы наземный блок переместился в друг друга, но игрок все еще останавливается там, где начинается второй блок.
Спасибо за помощь, это сводило меня с ума. – user1804234