LINUX.ORG.RU

box2d, libGDX вопрос правильного кода

 


0

1

Задача такая, сделать взрыв, для этого создаю частицы. Вопрос в том как их удалить через некое время? Можно создать свой класс типа

class part{
Body body;
float timeLeft;
}

Это будет правильным решением? Как вообще задать шарикам какую-то «группу»? Ну вот пусть есть у меня основные шары(суть игры именно в них), а есть другие объекты(стены, частицы) но для box2d это все body без какой-либо разницы, мне например нужно искать колизии только между шарами(те которые основные) но как это сделать? Сейчас сделал малость костыльным методом

for(Contact contact : world.getContactList()){
            if(contact.isTouching()) {
                    if(contact.getFixtureA().getBody().getUserData() != null &&
                            contact.getFixtureB().getBody().getUserData() != null) {
                        int a = (Integer) contact.getFixtureA().getBody().getUserData();
                        int b = (Integer) contact.getFixtureB().getBody().getUserData();

                        if (pBalls.get(a).color == pBalls.get(b).color) {
                            grafBall.addEdge(a, b);
                        }
                    }
            }
        } 
Тем самым находим только шары у которых есть userData, но данный способ будешь работать лишь до того момента пока мне не понадобится использовать userData и у других объектов. В общем вопрос думаю ясный, как правильно реализовать «Группы» тел.

★★★
Ответ на: комментарий от Solace

Взрыв - патиклы. Стены - обычно тела статические. Или кинематические, что отбрасывает необходимость расчёта

Все равно это проблему не решает.

abs ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.