原文链接http://blog.csdn.net/cng1991/article/details/7298955
今天看libgdx时看到了libgdx的粒子特效,效果蛮好的。它的粒子效果有专门的编辑器。
废话不多,就讲下如何实现的吧。
首先到http://code.google.com/p/libgdx/wiki/ParticleEditor下载粒子的编辑器,点击Run
JWS即可下载particle-editor.jnlp。
然后打开particle-editor.jnlp,当然这需要java的环境,然后编辑效果,这工具的使用方法自己去摸索吧,很简单的。然后将编辑好的效果保存为particle.p文件。放在android工程中的assets/data目录下。
然后贴上代码:
package com.cng;
import android.os.Bundle;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
import com.badlogic.gdx.graphics.g2d.ParticleEmitter;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.Array;
public class MyGameActivity extends AndroidApplication {
class MyGameListen implements ApplicationListener
{
SpriteBatch batch;
ParticleEffect effect;
int index;
Array<ParticleEmitter> emitters;
int count;
@Override
public void render () {
batch.getProjectionMatrix().setToOrtho2D(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
effect.draw(batch, Gdx.graphics.getDeltaTime());
batch.end();
}
@Override
public void create ()
{
batch=new SpriteBatch();
effect=new ParticleEffect();
effect.load(Gdx.files.internal("data/particle.p"), Gdx.files.internal("data/"));
effect.setPosition(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
emitters=new Array<ParticleEmitter>(effect.getEmitters());
effect.getEmitters().clear();
effect.getEmitters().add(emitters.get(index));
InputProcessor inputProcessor=new InputProcessor()
{
@Override
public boolean touchUp(int arg0, int arg1, int arg2, int arg3)
{
return false;
}
@Override
public boolean touchMoved(int arg0, int arg1)
{
return false;
}
@Override
public boolean touchDragged(int arg0, int arg1, int arg2)
{
effect.setPosition(arg0, Gdx.graphics.getHeight()-arg1);
return false;
}
@Override
public boolean touchDown(int arg0, int arg1, int arg2, int arg3)
{
ParticleEmitter emitter=emitters.get(index);
count+=100;
if(count>emitter.getMaxParticleCount())
emitter.setMaxParticleCount(count*2);
count=Math.max(0, count);
emitter.getEmission().setHigh(count/emitter.getLife().getHighMax()*1000);
effect.getEmitters().clear();
effect.getEmitters().add(emitter);
return false;
}
@Override
public boolean scrolled(int arg0)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyUp(int arg0)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyTyped(char arg0)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyDown(int arg0)
{
// TODO Auto-generated method stub
return false;
}
};
Gdx.input.setInputProcessor(inputProcessor);
}
@Override
public void dispose()
{
// TODO Auto-generated method stub
}
@Override
public void pause()
{
// TODO Auto-generated method stub
}
@Override
public void resize(int arg0, int arg1)
{
}
@Override
public void resume()
{
}
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialize(new MyGameListen(), false);
}
}
这样即可得到粒子效果。效果如下图:
分享到:
相关推荐
libGDX粒子编辑器汉化版
自己拿1.9.4版本的gdx-tools提取出来汉化用的,不怎么会翻译,还望指出以便修改。
libgdx 粒子编辑器
libGDX粒子编辑器汉化版,libGDX自带的编辑器,为了方便实用,本人将其汉化做成独立运行的jar程序。
这个小应用程序演示了如何在 LibGdx 中实现粒子效果。 触摸屏幕触发粒子效果 继续触摸以产生更多粒子(每 0.2 秒触发一次新粒子效果) 启用多点触控,一次最多可触摸 10 个点以同时从多个接触点生成 Android 软件...
libgdx提供了一个可视化的粒子系统编辑器,我们可以采取边编辑边预览的方式,“所见即所得”,很快就能做出不错的粒子系统效果。
libgdx之TTF字库的使用
Libgdx开发丛书之 Learning LibGDX Game Development, 2nd Edition
libgdx之演员与演出
libgdx 原生不支持中文输入,于是另辟蹊跷使用本地化组件实现中文输入。
java粒子特效源码ludum-engine 我为 Ludum Dare 创建的游戏引擎 建立在 LibGDX () 之上 工作正在进行中! 演示 可以在此处找到引擎的可玩演示: 能力 随机地图生成 - 迷宫、洞穴、地牢、障碍物/特征(洞穴探险)、...
android游戏源码 libgdx引擎
一个libGdx粒子系统使用的简单Demo
libgdx——游戏音效
libgdx TexturePackerTest
libgdx Music 音乐播放
libgdx JSON
libgdx Preference
libgdx 配置文件