Как в функцию объекта одного списка передать параметры объекта другого?

SFML и C++ Уроки \ Разработка игр Форумы SFML System, Window и другие вопросы Как в функцию объекта одного списка передать параметры объекта другого?

В этой теме 1 ответ, 1 участник, последнее обновление  Lactusspooch 3 мес., 4 нед. назад.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #4060

    Lactusspooch
    Участник
    Сообщений:1

    Зарегистрирован:
    13.07.2016

    Репутация:0

    for (it1 = enemies.begin(); it1 != enemies.end();)
    {
    Enemy *b = *it1;
    (*it1)->update((*it)->Crush, time);

    if (b->life == false)
    {
    it1 = enemies.erase(it1);
    delete b;
    }
    else it1++;
    }

    Два нормальных списка из урока про врагов. Два итератора. Пишет Вектор итератор из нот дифиринцейбл, как бы я не извращался. Мне нужно заставить всех врагов контактировать со всеми пулями, причем лучше, если именно таким образом(передачей параметра по итератору в функцию).

    #4061

    Lactusspooch
    Участник
    Сообщений:1

    Зарегистрирован:
    13.07.2016

    Репутация:0

    Bullet* bu;

    if ((Keyboard::isKeyPressed(Keyboard::Space)) && (timerok > 0.43))
    {

    bu = new Bullet(p.rect.left + 205, p.rect.top + 40, TeX.texture);
    bullets.push_back(bu);

    timerok = 0;
    }

    if ((Keyboard::isKeyPressed(Keyboard::P)) && (timerok > 2))
    {

    Enemy* en = new Enemy(800, 160, TeX.texture);
    enemies.push_back(en);

    timerok = 0;
    }

    vector <Bullet*>::iterator it = bullets.begin();

    for (it = bullets.begin(); it != bullets.end();)
    {
    Bullet *b = *it;

    (*it)->update(time);

    if (b->life == false)
    {
    it = bullets.erase(it);
    delete b;

    }
    else it++;

    }

    vector <Enemy*>::iterator it1 = enemies.begin();

    for (it1 = enemies.begin(); it1 != enemies.end();)
    {
    Enemy *b = *it1;
    (*it1)->update((*it)->Crush, time);

    if (b->life == false)
    {
    it1 = enemies.erase(it1);
    delete b;

    }
    else it1++;

    }

    B.DownTool((p.HPCurrent*pow(p.HP,-1))*100, 200, true);

    window.clear(Color::Black);

    window.draw(sprite);

    p.Play(time);
    window.draw(p.sprite);

    for (it = bullets.begin(); it != bullets.end(); it++)
    {
    window.draw((*it)->s);

    }
    for (it1 = enemies.begin(); it1 != enemies.end(); it1++)
    {
    window.draw((*it1)->s);

    }

    Вот на всякий случай вся часть этого кода, но он миллион раз переписанный и поменянный , что тут куча лишнего и рудиментов из старых тестов) Так то я делал все по урокам.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)

Для ответа в этой теме необходимо авторизоваться.