Я занимаюсь разработкой 2D-игры с прокруткой Android с помощью AndEngine и расширения BOX2D.BOX2D - правильные столкновения с монстром
У меня есть плеер корпус с 2-мя датчиками для «стоп» и «головы», так что я мог бы точно знать, с какой стороны игрока коснулся другого объекта и т.д. Вот изображение, показывающее, как это работает:
Он отлично подходит для проверки того, что игрок в данный момент касается земли ногами, поэтому он может прыгать, например, и т. Д. Теперь я пытаюсь реализовать действия, выполненные после контакта с монстром.
В моем контактном датчике, я проверяю
if (x1.getBody().getUserData().equals("monster") && x2.getUserData().equals("foot"))
{
jump();
}
if (x1.getBody().getUserData().equals("monster") && x2.getUserData().equals("player"))
{
GameManager.playSound(lostSound);
handleDie();
}
Но каждый раз, когда я прыгаю на «голове» монстра (Так что в основном я прикасаясь к нему с датчиком ноги) умер действие выполняется. Поскольку оба контакта замечены контактным прослушивателем, он работает, если я сделаю датчик ноги выше, чтобы больше выступать из тела игрока (тело игрока - это точная форма текстуры спрайта игрока), поэтому было бы похоже, что между игроком и монстром не было контакта вообще.
Заранее благодарим за любые советы по правильному обращению с ним.
Спасибо, действительно, это работает, на самом деле это был самый простой способ сделать это, у меня было несколько проблем, связанных с телом игрока, но, в конце концов, это работает. Я просто добавил третье твердое приспособление под названием «вниз» - так что теперь есть 2 твердых светильника и один датчик (датчик ноги) – Matim