[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 5 | 1 | 4
Назад Вниз Каталог Обновить

Liebe Ist Fur Alle Da 13/05/16 Птн 19:52:33  742600  
14631583533290.png (1071Кб, 808x817)
Братишки хелп. Пишу леталку стрелялку. Чисто по приколу. На SFML , C++ . Так вот, для создания пуль используется этот алгоритм

if ((Keyboard::isKeyPressed(Keyboard::Space))&&(timerok > 1))
{ bullets.push_back(new Bullet(x,y,time)); timerok = 0;}

и потом где-нибудь

for(it = bullets.begin(); it != bullets.end();)
{
Bullet b = it;
if ((* it)->getRect().intersects(En.getRect(100,100,En.PosX(time),300,time))) { b->life = false;}
if (b->life == false)
{
it = bullets.erase(it);
delete b;
}
else it++;
}

Так то всё работает, код верный, ибо я его скатал. И он работает. Но ! С 1400 фпс при выполнении строчки bullets.push_back(new Bullet(x,y,time)); фпс падает до 200 и мне это очень не нравится. Я бы с удовольствием сделал пули объектами , которые создаются вызовом функций, типа void(вся херня); но не знаю как. Собственно вопрос, как исправить это, или как по-другому создавать пули ?
Кстати, зацените идею, враги вызываются не списком, а являются кучей функций, которые меняют значения при каком-нибудь life == 0; таким образом враги не создаются и удаляются , а перерождаются. ^^
Аноним 13/05/16 Птн 19:55:51  742607
>>742600 (OP)
Нужно использовать ПАТТЕРН ПУЛ ОБЪЕКТОВ.
Аноним 13/05/16 Птн 19:57:57  742615
Нахуя тебе пули в виде указателя? Используй vector<Bullet>, а не vector<Bulltet*>, и с освобождением памяти проблем не будет, и с аллокацией. Если нужен все-таки указатель, используй fast_pool_allocator из буста.
Аноним 13/05/16 Птн 20:29:32  742667
>>742615
так а там
list <Bullet > bullets;
list <Bullet
>::iterator it;
без звездочки оно не хочет, можно на примерчике простеньком каком-нибудь? Я просто учусь только по ходу дела .
Аноним 13/05/16 Птн 20:33:01  742673
>>742667
Там звездочка короч. Она не отпечатывается че т. после Bullet
Аноним 13/05/16 Птн 22:50:41  742816
>>742600 (OP)
Чисто по приколу лучше на юнити писать, особенно таким оленям, которые не понимают языка, на котором пишут.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 5 | 1 | 4
Назад Вверх Каталог Обновить

Топ тредов