JME基础教程代码分析12 效果控制
package com.hello; import com.jme3.app.SimpleApplication; import com.jme3.effect.ParticleEmitter; import com.jme3.effect.ParticleMesh; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.Vector3f;
/** Sample 11 - how to create fire, water, and explosion effects. */ public class HelloEffects extends SimpleApplication {
public static void main(String[] args) { HelloEffects app = new HelloEffects(); app.start(); }
@Override public void simpleInitApp() {
ParticleEmitter fire = new ParticleEmitter("Emitter", ParticleMesh.Type.Triangle, 30); Material mat_red = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat_red.setTexture("Texture", assetManager.loadTexture("Effects/Explosion/flame.png")); fire.setMaterial(mat_red); //上边的都学过了 //2x2的粒子发射器 fire.setImagesX(2); fire.setImagesY(2); // 2x2 texture animation fire.setEndColor( new ColorRGBA(1f, 0f, 0f, 1f)); // red fire.setStartColor(new ColorRGBA(1f, 1f, 0f, 0.5f)); // yellow //简单的理解就是初始化每个粒子的方向和速度 fire.setInitialVelocity(new Vector3f(0, 2, 0)); fire.setStartSize(1.5f); fire.setEndSize(0.1f); //设置重力,但单位比较奇怪,我的理解类似于加速度单位 fire.setGravity(0); //设置粒子生命周期最高最低数 fire.setLowLife(0.5f); fire.setHighLife(3f); //粒子加速度范围,取值应该是0-1,现在0.3f fire.setVelocityVariation(0.3f); rootNode.attachChild(fire);
ParticleEmitter debris = new ParticleEmitter("Debris", ParticleMesh.Type.Triangle, 10); Material debris_mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); debris_mat.setTexture("Texture", assetManager.loadTexture("Effects/Explosion/Debris.png")); debris.setMaterial(debris_mat); debris.setImagesX(3); debris.setImagesY(3); // 3x3 texture animation //每个粒子旋转速度 debris.setRotateSpeed(4); //粒子中随机选择的图片 debris.setSelectRandomImage(true); debris.setInitialVelocity(new Vector3f(0, 4, 0)); debris.setStartColor(new ColorRGBA(1f, 1f, 1f, 1f)); debris.setGravity(6f); debris.setVelocityVariation(.60f); rootNode.attachChild(debris); //立即发射所有粒子 debris.emitAllParticles();
} } |
posted on 2011-08-12 11:32 苏桓(osbert) 阅读(273) 评论(0) 编辑 收藏 举报