我使用这个https://www.youtube.com/watch?v=LCLa-rgR_MA教程通过下载libgdx-nightly-latest.zip,使用Libgdx粒子编辑器创建了一个.p文件。现在,在我的Android项目中,我将gdx.jar和gdx-backend-android.jar作为外部jar从Libgdx中添加。我在libgdx项目中找到了以下代码:
ParticleEffect effect = new ParticleEffect();
FileHandle fileDir = Gdx.files.internal("data");
effect.load(Gdx.files.internal("data/myParticleTxtFile"), fileDir);
effect.start();
effect.draw(batch, Gdx.graphics.getDeltaTime());
batch.end();
我在onDraw()方法
中修改了上面的代码 ParticleEffect effect = new ParticleEffect();
FileHandle fileDir = Gdx.files.internal("asset");
effect.load(Gdx.files.internal("asset/myParticleTxtFile.p"), fileDir);
effect.start();
effect.draw((Batch) canvas, Gdx.graphics.getDeltaTime());
((Batch) canvas).end();
在调试代码之后,它给出了空指针异常Gdx.files.internal(" asset")here.I可以理解它没有得到任何资产文件夹但是如何解决这个以及如何绘制粒子效果在onDraw()中使用android中的.p文件
答案 0 :(得分:0)
您可以使用这种方式在Android代码中使用.p文件
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class Particles extends ApplicationAdapter {
SpriteBatch batch;
ParticleEffect pe;
@Override
public void create () {
batch = new SpriteBatch();
pe = new ParticleEffect();
pe.load(Gdx.files.internal("Particles.p"),Gdx.files.internal(""));
pe.getEmitters().first().setPosition(Gdx.graphics.getWidth()/2,Gdx.graphics.getHeight()/2);
pe.start();
}
@Override
public void render () {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
pe.update(Gdx.graphics.getDeltaTime());
batch.begin();
pe.draw(batch);
batch.end();
if (pe.isComplete())
pe.reset();
}
}