Size: a a a

2020 August 24

Е

Егор in supapro.cxx
Vladimir Suisei
Можно или нужно
наверное второе, если там рвалью лямбда некопируемая будет то не соберется без форварда
источник

RT

Roma T. in supapro.cxx
Вот такая дичь
источник

ПК

Побитый Кирпич... in supapro.cxx
Roma T.
я не не знаю, бьюсь уже битый час. после прохода по вложенному циклу
Ты на вопросы ответь выше
источник

RT

Roma T. in supapro.cxx
pBodyBall касается enemyBody, я сравниваю адреса, и удаляю enemyBody из вектора по индексу
источник

RT

Roma T. in supapro.cxx
struct b2ContactEdge
{
 b2Body* other;      ///< provides quick access to the other body attached.
 b2Contact* contact;    ///< the contact
 b2ContactEdge* prev;  ///< the previous contact edge in the body's contact list
 b2ContactEdge* next;  ///< the next contact edge in the body's contact list
};
источник

AP

Alexander Potapov in supapro.cxx
Ну берешь в дебаге смотришь куда твои адреса указывают
источник

AP

Alexander Potapov in supapro.cxx
Удалил небось а ссылка осталось висеть на несущетсвующем элементе
источник

RT

Roma T. in supapro.cxx
нет конструктора который ставил бы b2ContactEdge* next;  в nullptr когда список заканчивается
источник

Е

Егор in supapro.cxx
Roma T.
for (b2ContactEdge* ce = pBodyBall->GetContactList(); ce; ce = ce->next)
       {
           b2Contact* c = ce->contact;

           for (int i = 0; i < enemyBody.size(); i++)
               if (ce->contact->GetFixtureB() == enemyBody[i]->GetFixtureList())
               {
                   enemyBody[i]->DestroyFixture(enemyBody[i]->GetFixtureList());
                   enemy.erase(enemy.begin() + i);
                   enemyBody.erase(enemyBody.begin() + i);
               }
       }
а где c используется?
источник

RT

Roma T. in supapro.cxx
)
источник

RT

Roma T. in supapro.cxx
for (b2ContactEdge* ce = pBodyBall->GetContactList(); ce; ce = ce->next)
       {
           b2Contact* c = ce->contact;

           for (int i = 0; i < enemyBody.size(); i++)
               if (c->GetFixtureB() == enemyBody[i]->GetFixtureList())
               {
                   enemyBody[i]->DestroyFixture(enemyBody[i]->GetFixtureList());
                   enemy.erase(enemy.begin() + i);
                   enemyBody.erase(enemyBody.begin() + i);
               }
       }
источник

Е

Егор in supapro.cxx
ну с такими ответами могу уверенно заявить, что у тебя в коде ошибка
источник

RT

Roma T. in supapro.cxx
вот так цикл идет, то я изменял ранее *с указатель.
источник

Е

Егор in supapro.cxx
Roma T.
нет конструктора который ставил бы b2ContactEdge* next;  в nullptr когда список заканчивается
а как это работает тогда? У тебя цикл бесконечный получается, или ты руками выставляешь?
источник

RT

Roma T. in supapro.cxx
Егор
а как это работает тогда? У тебя цикл бесконечный получается, или ты руками выставляешь?
да нет, происходит касание, и исключение на b2Contact* c = ce->contact; даже если удалить 1 элемент.
источник

RT

Roma T. in supapro.cxx
я не могу понять почему после прохода вложенного for у с адресс, левый появляется.
источник

RT

Roma T. in supapro.cxx
если закоментить enemyBody[i]->DestroyFixture(enemyBody[i]->GetFixtureList()); то картинки удаляются, но тела на карте остаются.
источник

Е

Егор in supapro.cxx
Roma T.
я не могу понять почему после прохода вложенного for у с адресс, левый появляется.
после удаления указатели инвалидируются скорее всего
источник

AN

Alexander N in supapro.cxx
Да
источник

Е

Егор in supapro.cxx
только в твоём участке кода вообще нифига не понятно как эти объекты связаны и почему указатели от другого контейнера должны инвалидироваться
источник