Search in sources :

Example 46 with ActionListener

use of com.jme3.input.controls.ActionListener in project jmonkeyengine by jMonkeyEngine.

the class TestTransparentShadow method simpleInitApp.

public void simpleInitApp() {
    cam.setLocation(new Vector3f(5.700248f, 6.161693f, 5.1404157f));
    cam.setRotation(new Quaternion(-0.09441641f, 0.8993388f, -0.24089815f, -0.35248178f));
    viewPort.setBackgroundColor(ColorRGBA.DarkGray);
    Quad q = new Quad(20, 20);
    q.scaleTextureCoordinates(Vector2f.UNIT_XY.mult(10));
    TangentBinormalGenerator.generate(q);
    Geometry geom = new Geometry("floor", q);
    Material mat = assetManager.loadMaterial("Textures/Terrain/Pond/Pond.j3m");
    geom.setMaterial(mat);
    geom.rotate(-FastMath.HALF_PI, 0, 0);
    geom.center();
    geom.setShadowMode(ShadowMode.CastAndReceive);
    rootNode.attachChild(geom);
    AmbientLight al = new AmbientLight();
    al.setColor(ColorRGBA.White.mult(0.7f));
    rootNode.addLight(al);
    DirectionalLight dl1 = new DirectionalLight();
    dl1.setDirection(new Vector3f(0, -1, 0.5f).normalizeLocal());
    dl1.setColor(ColorRGBA.White.mult(1.5f));
    rootNode.addLight(dl1);
    // create the geometry and attach it
    Spatial tree = assetManager.loadModel("Models/Tree/Tree.mesh.j3o");
    tree.setQueueBucket(Bucket.Transparent);
    tree.setShadowMode(ShadowMode.CastAndReceive);
    rootNode.attachChild(tree);
    // Uses Texture from jme3-test-data library!
    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.setShadowMode(ShadowMode.Cast);
    fire.setMaterial(mat_red);
    fire.setImagesX(2);
    // 2x2 texture animation
    fire.setImagesY(2);
    // red
    fire.setEndColor(new ColorRGBA(1f, 0f, 0f, 1f));
    // yellow
    fire.setStartColor(new ColorRGBA(1f, 1f, 0f, 0.5f));
    fire.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 2, 0));
    fire.setStartSize(0.6f);
    fire.setEndSize(0.1f);
    fire.setGravity(0, 0, 0);
    fire.setLowLife(0.5f);
    fire.setHighLife(1.5f);
    fire.getParticleInfluencer().setVelocityVariation(0.3f);
    fire.setLocalTranslation(5.0f, 0, 1.0f);
    fire.setLocalScale(0.3f);
    fire.setQueueBucket(Bucket.Translucent);
    rootNode.attachChild(fire);
    Material mat2 = assetManager.loadMaterial("Common/Materials/RedColor.j3m");
    Geometry ball = new Geometry("sphere", new Sphere(16, 16, 0.5f));
    ball.setMaterial(mat2);
    ball.setShadowMode(ShadowMode.CastAndReceive);
    rootNode.attachChild(ball);
    ball.setLocalTranslation(-1.0f, 1.5f, 1.0f);
    final DirectionalLightShadowRenderer dlsRenderer = new DirectionalLightShadowRenderer(assetManager, 1024, 1);
    dlsRenderer.setLight(dl1);
    dlsRenderer.setLambda(0.55f);
    dlsRenderer.setShadowIntensity(0.8f);
    dlsRenderer.setShadowCompareMode(CompareMode.Software);
    dlsRenderer.setEdgeFilteringMode(EdgeFilteringMode.Nearest);
    dlsRenderer.displayDebug();
    viewPort.addProcessor(dlsRenderer);
    inputManager.addMapping("stabilize", new KeyTrigger(KeyInput.KEY_B));
    inputManager.addListener(new ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (name.equals("stabilize") && isPressed) {
                dlsRenderer.setEnabledStabilization(!dlsRenderer.isEnabledStabilization());
            }
        }
    }, "stabilize");
}
Also used : ParticleEmitter(com.jme3.effect.ParticleEmitter) Quad(com.jme3.scene.shape.Quad) KeyTrigger(com.jme3.input.controls.KeyTrigger) Material(com.jme3.material.Material) Geometry(com.jme3.scene.Geometry) Sphere(com.jme3.scene.shape.Sphere) ActionListener(com.jme3.input.controls.ActionListener) Spatial(com.jme3.scene.Spatial) DirectionalLight(com.jme3.light.DirectionalLight) DirectionalLightShadowRenderer(com.jme3.shadow.DirectionalLightShadowRenderer) AmbientLight(com.jme3.light.AmbientLight)

Example 47 with ActionListener

use of com.jme3.input.controls.ActionListener in project jmonkeyengine by jMonkeyEngine.

the class TestControls method simpleInitApp.

@Override
public void simpleInitApp() {
    // Test multiple inputs per mapping
    inputManager.addMapping("My Action", new KeyTrigger(KeyInput.KEY_SPACE), new MouseAxisTrigger(MouseInput.AXIS_WHEEL, false));
    // Test multiple listeners per mapping
    inputManager.addListener(actionListener, "My Action");
    inputManager.addListener(analogListener, "My Action");
}
Also used : KeyTrigger(com.jme3.input.controls.KeyTrigger) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger)

Example 48 with ActionListener

use of com.jme3.input.controls.ActionListener in project jmonkeyengine by jMonkeyEngine.

the class TestJoystick method simpleInitApp.

@Override
public void simpleInitApp() {
    getFlyByCamera().setEnabled(false);
    Joystick[] joysticks = inputManager.getJoysticks();
    if (joysticks == null)
        throw new IllegalStateException("Cannot find any joysticks!");
    try {
        PrintWriter out = new PrintWriter(new FileWriter("joysticks-" + System.currentTimeMillis() + ".txt"));
        dumpJoysticks(joysticks, out);
        out.close();
    } catch (IOException e) {
        throw new RuntimeException("Error writing joystick dump", e);
    }
    int gamepadSize = cam.getHeight() / 2;
    float scale = gamepadSize / 512.0f;
    gamepad = new GamepadView();
    gamepad.setLocalTranslation(cam.getWidth() - gamepadSize - (scale * 20), 0, 0);
    gamepad.setLocalScale(scale, scale, scale);
    guiNode.attachChild(gamepad);
    joystickInfo = new Node("joystickInfo");
    joystickInfo.setLocalTranslation(0, cam.getHeight(), 0);
    guiNode.attachChild(joystickInfo);
    // Add a raw listener because it's eisier to get all joystick events
    // this way.
    inputManager.addRawInputListener(new JoystickEventListener());
    // add action listener for mouse click 
    // to all easier custom mapping
    inputManager.addMapping("mouseClick", new MouseButtonTrigger(mouseInput.BUTTON_LEFT));
    inputManager.addListener(new ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (isPressed) {
                pickGamePad(getInputManager().getCursorPosition());
            }
        }
    }, "mouseClick");
}
Also used : FileWriter(java.io.FileWriter) Node(com.jme3.scene.Node) IOException(java.io.IOException) Joystick(com.jme3.input.Joystick) ActionListener(com.jme3.input.controls.ActionListener) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger) PrintWriter(java.io.PrintWriter)

Example 49 with ActionListener

use of com.jme3.input.controls.ActionListener in project jmonkeyengine by jMonkeyEngine.

the class HelloPhysics method initInputs.

/** Add InputManager action: Left click triggers shooting. */
private void initInputs() {
    inputManager.addMapping("shoot", new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
    inputManager.addListener(actionListener, "shoot");
}
Also used : MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger)

Example 50 with ActionListener

use of com.jme3.input.controls.ActionListener in project jmonkeyengine by jMonkeyEngine.

the class RefEnv method simpleInitApp.

@Override
public void simpleInitApp() {
    cam.setLocation(new Vector3f(-2.3324413f, 2.9567573f, 4.6054406f));
    cam.setRotation(new Quaternion(0.06310794f, 0.9321281f, -0.29613864f, 0.1986369f));
    Spatial sc = assetManager.loadModel("Scenes/PBR/spheres.j3o");
    rootNode.attachChild(sc);
    rootNode.getChild("Scene").setCullHint(Spatial.CullHint.Always);
    ref = new Node("reference pictures");
    refDE = new Picture("refDE");
    refDE.setHeight(cam.getHeight());
    refDE.setWidth(cam.getWidth());
    refDE.setImage(assetManager, "jme3test/light/pbr/spheresRefDE.png", false);
    refM = new Picture("refM");
    refM.setImage(assetManager, "jme3test/light/pbr/spheresRefM.png", false);
    refM.setHeight(cam.getHeight());
    refM.setWidth(cam.getWidth());
    ref.attachChild(refDE);
    stateManager.attach(new EnvironmentCamera());
    inputManager.addMapping("tex", new KeyTrigger(KeyInput.KEY_SPACE));
    inputManager.addMapping("switch", new KeyTrigger(KeyInput.KEY_RETURN));
    inputManager.addMapping("ref", new KeyTrigger(KeyInput.KEY_R));
    inputManager.addListener(new ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (name.equals("tex") && isPressed) {
                if (tex == null) {
                    return;
                }
                if (tex.getParent() == null) {
                    guiNode.attachChild(tex);
                } else {
                    tex.removeFromParent();
                }
            }
            if (name.equals("switch") && isPressed) {
                switchMat(rootNode.getChild("Scene"));
            }
            if (name.equals("ref") && isPressed) {
                if (ref.getParent() == null) {
                    guiNode.attachChild(ref);
                } else {
                    ref.removeFromParent();
                }
            }
        }
    }, "tex", "switch", "ref");
}
Also used : ActionListener(com.jme3.input.controls.ActionListener) Quaternion(com.jme3.math.Quaternion) Spatial(com.jme3.scene.Spatial) EnvironmentCamera(com.jme3.environment.EnvironmentCamera) Picture(com.jme3.ui.Picture) Vector3f(com.jme3.math.Vector3f) Node(com.jme3.scene.Node) KeyTrigger(com.jme3.input.controls.KeyTrigger)

Aggregations

KeyTrigger (com.jme3.input.controls.KeyTrigger)50 ActionListener (com.jme3.input.controls.ActionListener)44 Vector3f (com.jme3.math.Vector3f)27 MouseButtonTrigger (com.jme3.input.controls.MouseButtonTrigger)18 Geometry (com.jme3.scene.Geometry)16 DirectionalLight (com.jme3.light.DirectionalLight)15 Material (com.jme3.material.Material)14 Spatial (com.jme3.scene.Spatial)13 AnalogListener (com.jme3.input.controls.AnalogListener)11 Quaternion (com.jme3.math.Quaternion)11 FilterPostProcessor (com.jme3.post.FilterPostProcessor)10 Node (com.jme3.scene.Node)10 Sphere (com.jme3.scene.shape.Sphere)10 Box (com.jme3.scene.shape.Box)9 AmbientLight (com.jme3.light.AmbientLight)7 BitmapText (com.jme3.font.BitmapText)6 MouseAxisTrigger (com.jme3.input.controls.MouseAxisTrigger)5 ChaseCamera (com.jme3.input.ChaseCamera)4 ColorRGBA (com.jme3.math.ColorRGBA)4 Vector2f (com.jme3.math.Vector2f)4