Java源码示例:com.jme3.effect.shapes.EmitterBoxShape
示例1
@Override
@FxThread
protected void buildForImpl(@NotNull final Object object, @Nullable final Object parent,
@NotNull final VBox container, @NotNull final ModelChangeConsumer changeConsumer) {
if (!(object instanceof EmitterShape)) return;
final EmitterShape shape = (EmitterShape) object;
if (shape instanceof EmitterPointShape) {
createControls(container, changeConsumer, (EmitterPointShape) object);
} else if (shape instanceof EmitterBoxShape) {
createControls(container, changeConsumer, (EmitterBoxShape) object);
} else if (shape instanceof EmitterSphereShape) {
createControls(container, changeConsumer, (EmitterSphereShape) object);
}
}
示例2
/**
* Create controls.
*
* @param container the container.
* @param changeConsumer the change consumer.
* @param shape the shape.
*/
@FxThread
private void createControls(@NotNull final VBox container, @NotNull final ModelChangeConsumer changeConsumer,
@NotNull final EmitterBoxShape shape) {
final Vector3f length = shape.getLen();
final Vector3f min = shape.getMin();
final Vector3fPropertyControl<ModelChangeConsumer, EmitterBoxShape> lengthControl =
new Vector3fPropertyControl<>(length, Messages.MODEL_PROPERTY_LENGTH, changeConsumer);
lengthControl.setSyncHandler(EmitterBoxShape::getLen);
lengthControl.setApplyHandler(EmitterBoxShape::setLen);
lengthControl.setEditObject(shape);
final Vector3fPropertyControl<ModelChangeConsumer, EmitterBoxShape> minControl =
new Vector3fPropertyControl<>(min, Messages.MODEL_PROPERTY_MIN, changeConsumer);
minControl.setSyncHandler(EmitterBoxShape::getMin);
minControl.setApplyHandler(EmitterBoxShape::setMin);
minControl.setEditObject(shape);
FXUtils.addToPane(lengthControl, container);
FXUtils.addToPane(minControl, container);
}
示例3
@Override
@FxThread
protected @NotNull EmitterShape createEmitterShape(@NotNull final VarTable vars) {
final Vector3f min = vars.get(PROPERTY_MIN);
final Vector3f max = vars.get(PROPERTY_MAX);
return new EmitterBoxShape(min, max);
}
示例4
@Override
public void simpleInitApp() {
final ParticleEmitter emit = new ParticleEmitter("Emitter", Type.Point, 10000);
emit.setShape(new EmitterBoxShape(new Vector3f(-1.8f, -1.8f, -1.8f),
new Vector3f(1.8f, 1.8f, 1.8f)));
emit.setGravity(0, 0, 0);
emit.setLowLife(60);
emit.setHighLife(60);
emit.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 0, 0));
emit.setImagesX(15);
emit.setStartSize(0.05f);
emit.setEndSize(0.05f);
emit.setStartColor(ColorRGBA.White);
emit.setEndColor(ColorRGBA.White);
emit.setSelectRandomImage(true);
emit.emitAllParticles();
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
mat.setBoolean("PointSprite", true);
mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png"));
emit.setMaterial(mat);
rootNode.attachChild(emit);
inputManager.addListener(new ActionListener() {
@Override
public void onAction(String name, boolean isPressed, float tpf) {
if ("setNum".equals(name) && isPressed) {
emit.setNumParticles(5000);
emit.emitAllParticles();
}
}
}, "setNum");
inputManager.addMapping("setNum", new KeyTrigger(KeyInput.KEY_SPACE));
}
示例5
@Override
public void simpleInitApp() {
final ParticleEmitter emit = new ParticleEmitter("Emitter", Type.Point, 10000);
emit.setShape(new EmitterBoxShape(new Vector3f(-1.8f, -1.8f, -1.8f),
new Vector3f(1.8f, 1.8f, 1.8f)));
emit.setGravity(0, 0, 0);
emit.setLowLife(60);
emit.setHighLife(60);
emit.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 0, 0));
emit.setImagesX(15);
emit.setStartSize(0.05f);
emit.setEndSize(0.05f);
emit.setStartColor(ColorRGBA.White);
emit.setEndColor(ColorRGBA.White);
emit.setSelectRandomImage(true);
emit.emitAllParticles();
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
mat.setBoolean("PointSprite", true);
mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png"));
emit.setMaterial(mat);
rootNode.attachChild(emit);
inputManager.addListener(new ActionListener() {
public void onAction(String name, boolean isPressed, float tpf) {
if ("setNum".equals(name) && isPressed) {
emit.setNumParticles(5000);
emit.emitAllParticles();
}
}
}, "setNum");
inputManager.addMapping("setNum", new KeyTrigger(KeyInput.KEY_SPACE));
}
示例6
public EmitterBoxShapeTreeNode(@NotNull final EmitterBoxShape element, final long objectId) {
super(element, objectId);
}