我正在製作一個使用粒子效果進行爆炸的libGDX遊戲。這在新手機上運行得非常好,但在較老的手機上(在HTC Desire上測試),在屏幕fps滯後時間顯着超過一些爆炸時運行良好。爲更慢的手機優化粒子效果
有我目前正在考慮兩種選擇:
有很多效果每顆粒,從而減少計數可能是一種選擇,但我寧可不要一致性和美觀的原因。
使用運行粒子效果生成的動畫並保存每個幀。這看起來不錯,而且會一致。圖像大小可能存在問題。我也看不到libGDX粒子實現如何實現。
任何想法?
編輯: 代碼的一些片段: 在資產類加載後的效果:
particleFire.load(Gdx.files.internal("explosion.p"),Gdx.files.internal(""));
我加載拋射對象的構造粒子效果。我在主渲染循環中做這個對象創建,我知道它是優化的候選者。
explosion = new ParticleEffect(Assets.particleFire);
在渲染線程調用此方法繪製的效果。
private void drawBlasts(float delta){
for(Missile projectile : world.missiles){
if (projectile.missileState == State.EXPLODING){
if(projectile.stateTime==0.0f) {
projectile.explosion.start();
continue;
}
projectile.explosion.setPosition(projectile.position.x, projectile.position.y);
projectile.explosion.draw(spriteBatcher, delta);
}
}
}
explosion.p
- Delay -
active: false
- Duration -
lowMin: 1000.0
lowMax: 1000.0
- Count -
min: 0
max: 100
- Emission -
lowMin: 0.0
lowMax: 0.0
highMin: 250.0
highMax: 250.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Life -
lowMin: 800.0
lowMax: 800.0
highMin: 1000.0
highMax: 1000.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.66
timeline2: 0.9931507
EDIT 2的一個片段:這些影響是累加所以勾兌過正在進行的好一點。
我已經更新了OP。我知道對象創建有一些明顯的優化,但我不認爲它們是問題。三星Galaxy S的屏幕效果在8或9時幀頻開始成爲問題。在HTC Desire上約爲5。 – barconr
我已經更新了我的OP – LiamJPeters