Я работаю над игрой типа Bubble Shooter, где я хочу, чтобы тело не столкнулось ни с чем другим, когда оно лопнуло или падало. Я не могу использовать фильтрацию столкновений, потому что все тела на сцене одного типа. Я хочу отключить столкновение. Я не хочу сталкиваться с телом с любым другим телом. Мне сказали, чтобы установить флаг isSensor в true, но снова я не могу получить флаг и установить его. Пожалуйста, помогите.Отключить столкновение полностью с телом в AndEngine Box2D
ответ
Найдено ответа:
for(int i=0; i<getBody().getFixtureList().size();i++){
this.getBody().getFixtureList().get(i).setSensor(true);
}
Установка датчика к истинному не вызывают коллизии эффектов для тела. Но помните, что на самом деле происходят столкновения, и вызываются контактные слушатели. Но эффект столкновения из-за физики не происходит, поэтому вам нужно проверить, что если тело имеет isSesors, установленное в true, ничего не делает в контактах.
Вы также можете использовать бит бит и свойство разряда категории для изменения поведения какого-либо тела и другого тела как нормального.
Таким образом, вы можете создать несколько групп тел, которые реагируют на столкновение как группу. Означает, что одна группа имеет различное поведение при столкновении, чем другое.
Используя этот метод, вы можете выполнить фильтрацию столкновений. Эта вещь представлена в следующем примере.
На самом деле у меня несколько тел говорят 100 на экране, и они не могут быть сгруппированы, поэтому я не могу использовать бит категории. Это будет длительный процесс. Но да, ваше решение - это решение, которое может помочь другим. –
Спасибо, что рассмотрели общий сценарий для вашего ответа. – Siddharth
Дайте отрицательное значение FilterIndex вашего прибора, если вы не хотите, чтобы они сталкиваются и положительное значение, если вы хотите, чтобы они сталкиваются.
Для удаления столкновения
public static final FixtureDef PLAYERS_FIXTURE_DEF = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f, false, CATEGORYBIT_PLAYERS, MASKBITS_WALL, (short)-1);
и для столкновения
public static final FixtureDef PLAYERS_FIXTURE_DEF = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f, false, CATEGORYBIT_PLAYERS, MASKBITS_WALL, (short)1);
- 1. Box2d - AndEngine
- 2. Столкновение в Phaser Box2D
- 3. AndEngine/Box2d/Java - обнаружение столкновения между статическим и динамическим телом
- 4. box2d столкновение с кривыми
- 5. Box2d: динамическое тело не контактирует с кинематическим телом полностью
- 6. Box2D не обнаруживает столкновение
- 7. Фильтр столкновения AndEngine и box2d
- 8. Неправильное столкновение в box2d
- 9. Создание круга в android andengine by box2d?
- 10. Box2D kick start AndEngine?
- 11. AndEngine: столкновение двух спрайтов
- 12. AndEngine Box2D Extension - Scaling
- 13. AndEngine: столкновение между формами
- 14. AndEngine Box2D тела GetContactList
- 15. Box2D соседних края столкновение
- 16. Box2D столкновение обратного
- 17. AndEngine Box2D Взрыв
- 18. Маятник в AndEngine и box2d
- 19. Cocos2d - Можно ли отключить столкновение для Box2d b2Body с b2FixtureDef?
- 20. Starling + Box2d - Столкновение неточно
- 21. Движение тела Box2d в Andengine
- 22. Уникальные тела в AndEngine Box2D
- 23. Невозможно перепрыгнуть в Andengine с Box2D
- 24. Библиотека Box2D - Почему столкновение не работает должным образом, когда динамическое тело застревает между статическим телом и другим динамическим телом?
- 25. Столкновение без физики (Cocos2D + Box2D iOS)
- 26. Box2D | Отключить динамическое столкновение тела при запуске ContactListener при столкновении
- 27. Andengine Box2d заменит спрайт другим
- 28. Body Adjustable Velocity AndEngine/Box2D
- 29. AndEngine Box2d - как совместное «растяжение»?
- 30. Как уничтожить спрайт с телом COCOS2D Box2D
Спасибо, это должно быть принято в качестве ответа, поскольку это более непосредственное отношение к вопросу. –