Package com.l2client.animsystem.example

Source Code of com.l2client.animsystem.example.AnimationInputTest

package com.l2client.animsystem.example;


import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

import com.jme3.animation.AnimControl;
import com.jme3.app.SimpleApplication;
import com.jme3.input.RawInputListener;
import com.jme3.input.event.JoyAxisEvent;
import com.jme3.input.event.JoyButtonEvent;
import com.jme3.input.event.KeyInputEvent;
import com.jme3.input.event.MouseButtonEvent;
import com.jme3.input.event.MouseMotionEvent;
import com.jme3.input.event.TouchEvent;
import com.jme3.light.DirectionalLight;
import com.jme3.math.Vector3f;
import com.jme3.scene.Spatial;
import com.l2client.animsystem.example.jme3.JMESimpleController;

/**
* A GUI test for the animation system.
* The jme ninja example is used as a base.
* Get sure the jme data is in your execution path!
*
*/
public class AnimationInputTest extends SimpleApplication {
 
  private JFrame frame;

    /*
     * (non-Javadoc)
     *
     * @see com.jme.app.SimpleGame#initGame()
     */
    public void simpleInitApp() {
       setupScene();
       //override mouse input, otherwise you will have a hard time switching to the menu
       //without rotating the model
    mouseInput.setInputListener(new RawInputListener() {

      @Override
      public void onTouchEvent(TouchEvent evt) {
      }

      @Override
      public void onMouseMotionEvent(MouseMotionEvent evt) {
      }

      @Override
      public void onMouseButtonEvent(MouseButtonEvent evt) {
      }

      @Override
      public void onKeyEvent(KeyInputEvent evt) {
      }

      @Override
      public void onJoyButtonEvent(JoyButtonEvent evt) {
      }

      @Override
      public void onJoyAxisEvent(JoyAxisEvent evt) {
      }

      @Override
      public void endInput() {
      }

      @Override
      public void beginInput() {
      }
    });
  }
   
    /*
     * replace controller
     * initialize gui
     */
    private void setupScene() {

        /** Load a Ninja model (OgreXML + material + texture from test_data) */
        Spatial ninja = assetManager.loadModel("Models/Ninja/Ninja.mesh.xml");
        ninja.scale(0.05f, 0.05f, 0.05f);
        ninja.rotate(0.0f, -3.0f, 0.0f);
        ninja.setLocalTranslation(0.0f, -5.0f, -2.0f);
        rootNode.attachChild(ninja);
        /** You must add a light to make the model visible */
        DirectionalLight sun = new DirectionalLight();
        sun.setDirection(new Vector3f(-0.1f, -0.7f, -1.0f).normalizeLocal());
        rootNode.addLight(sun);
       
      AnimControl c = (AnimControl)rootNode.getChild(0).getControl(0);
      c.createChannel();
      final JMESimpleController con = new JMESimpleController(c);
      rootNode.getChild(0).addControl(con);

      if(con!= null ){
        SwingUtilities.invokeLater(new Runnable() {

        public void run() {
          AnimationInputSwitchSidebar bar = new AnimationInputSwitchSidebar();
            bar.setTarget(con);
            frame = new JFrame();
            frame.getContentPane().add(bar);
            frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
          }
        });      
      }
    }
   
  /**
     * Entry point
     */
    public static void main(String[] args) {
      AnimationInputTest app = new AnimationInputTest();
      //This is needed otherwise the swing menu will freeze the display until it gets focus back
      app.setPauseOnLostFocus(false);
        app.start();
    }
   
    @Override
    public void destroy(){
      super.destroy();
      //Cleanup of swing window
      SwingUtilities.invokeLater(new Runnable() {

      public void run() {
        frame.dispose();
      }
      });
    }

}
TOP

Related Classes of com.l2client.animsystem.example.AnimationInputTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.