Сильно падает производительность через время
| |
WarezReiter | Дата: Пятница, 07 Декабря 2012, 16:48 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Поставил счётчик fps, скорость комнаты - 40. Есть несколько врагов, и каждый постоянно стреляет пулями через 1 сек. У пуль в Draw event стоит стандартный блок эффектов:
// setting up the particle system global._systemabc = part_system_create() part_system_depth(global._systemabc,1) global._particleabc = part_type_create() part_type_shape(global._particleabc,pt_shape_flare) part_type_size(global._particleabc,1,1,0,0) part_type_scale(global._particleabc,0.10,0.50) part_type_orientation(global._particleabc,0,0,0,0,0) part_type_color3(global._particleabc,65535,0,255) part_type_alpha3(global._particleabc,1,1,1) part_type_blend(global._particleabc,1) part_type_life(global._particleabc,3,3) part_type_speed(global._particleabc,0,0,0,0) part_type_direction(global._particleabc,270,270,0,0) part_type_gravity(global._particleabc,0,0) global._emitterabc = part_emitter_create(global._systemabc) part_emitter_region(global._systemabc,global._emitterabc,x,x,y,y,ps_shape_rectangle,ps_distr_invgaussian) // Begin particle stream part_emitter_burst(global._systemabc,global._emitterabc,global._particleabc,1)
Со временем, когда они настреляют раз 100, начинают падать fps Проблема именно в эфектах, так как если я их убираю, то всё норм. В режиме отладки число активных particles всё время растёт, так и должно быть?
Заранее Спасибо!
P.S. Пули уничтожаются за пределами комнаты P.P.S. Если необходим пример, скину...
The order comes in the chaos
|
|
| |
Qvant | Дата: Пятница, 07 Декабря 2012, 17:05 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| 1) эмитор надо один раз создать а не создавать его в каждой пули 2)время жизни частиц конечно ?
|
|
| |
WarezReiter | Дата: Пятница, 07 Декабря 2012, 17:15 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| part_type_life(global._particleabc,3,3) - Это ограничение жизни частиц? Добавлено (07.12.2012, 17:15) --------------------------------------------- part_type_life(global._particleabc,3,3) - Это ограничение жизни частиц?
The order comes in the chaos
|
|
| |
Dva_Kota | Дата: Пятница, 07 Декабря 2012, 17:30 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Не правильное использование частиц. Здесь я делал пример, думаю он поможет: Пример
Здесь статья про использование частиц, тоже может пригодиться: Статья
Новый пример инвентаря! /20.06.2012/
Energy Wars
Сообщение отредактировал Dva_Kota - Пятница, 07 Декабря 2012, 17:31 |
|
| |
WarezReiter | Дата: Пятница, 07 Декабря 2012, 17:40 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Объект пули всего один. В игре создаётся сразу много таких обектов, они летят и уничтожаются за комнатой, так сколько угодно раз. Если писать в создании пули код эффекта, то ничего не видно.Добавлено (07.12.2012, 17:40) --------------------------------------------- Первая ссылка не работает, а статья полезная
The order comes in the chaos
|
|
| |
Dva_Kota | Дата: Пятница, 07 Декабря 2012, 17:51 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Пример сделан по статье, так что если со статьей разберешься - этого будет достаточно.
Для создания частиц нужно использовать в шаге лишь две функции: part_emitter_region() и part_emitter_burst(). Все остальные - один раз в начале игры или при старте комнаты.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
WarezReiter | Дата: Пятница, 07 Декабря 2012, 17:53 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Спасибо
The order comes in the chaos
|
|
| |
ErrantBug | Дата: Суббота, 08 Декабря 2012, 09:51 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| WarezReiter, ты забыл освободить (удалить) частицы. Потому-то они накладываются друг на друга, в результате чего падает FPS.
|
|
| |
|