2: Eingaben
This tutorial is showing the input handling for eEngine.

WebStart eEngine Tutorial 2 - Input
(To close the tutorial press any key)
package de.esw.eengine.test.t2_input;
 import java.awt.Color;
 import java.awt.DisplayMode;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseWheelEvent;
 import java.util.logging.Level;
 import de.esw.eengine.EEngineException;
 import de.esw.eengine.core.Core;
 import de.esw.eengine.core.IInputDevice;
 import de.esw.eengine.core.IRenderDevice;
 import de.esw.eengine.core.Timer;
 import de.esw.eengine.core.Core.RenderPipeline;
 import de.esw.eengine.device.input.AbstractKeyboardListener;
 import de.esw.eengine.device.input.AbstractMouseListener;
 import de.esw.eengine.device.input.KeyboardInputDevice;
 import de.esw.eengine.device.input.MouseInputDevice;
 import de.esw.eengine.device.input.SystemInputDevice;
 import de.esw.eengine.device.render.WindowRenderDevice;
 import de.esw.eengine.renderable.Text;
 /**
  * Tutorial 2 showing the work of mouse and keyboard input subsystems.
  *
  * @author markusw
  * @version $Id: Main.java 168 2005-07-07 18:43:57Z markusw $
  * @since 1.0
  */
 public final class Main {
     /** Comment for renderDevice */
     IRenderDevice renderDevice;
     /** Comment for keyboardDevice */
     private IInputDevice keyboardDevice;
     /** Comment for mouseDevice */
     private IInputDevice mouseDevice;
     /**
      * Keyboard listener implementation. On any key press the application is
      * shutdown.
      *
      * @author markusw
      * @version $Id: Main.java 168 2005-07-07 18:43:57Z markusw $
      * @since 1.0
      */
     class KeyboardInputListener extends AbstractKeyboardListener {
         /**
          * @see java.awt.event.KeyAdapter#keyTyped(java.awt.event.KeyEvent)
          */
         @Override
         public void keyTyped(KeyEvent evt) {
             Core.getLogger().info("Recieved key typed: " + evt);
             Main.this.renderDevice.close();
         }
     }
     /**
      * Mouse input listener implementation. Just some debug output on events are
      * done here.
      *
      * @author markusw
      * @version $Id: Main.java 168 2005-07-07 18:43:57Z markusw $
      * @since 1.0
      */
     class MouseInputListener extends AbstractMouseListener {
         /**
          * @see de.esw.eengine.device.input.AbstractMouseListener#mouseClicked(java.awt.event.MouseEvent)
          */
         @Override
         public void mouseClicked(MouseEvent e) {
             Core.getLogger().info("Recieved mouse click: " + e);
         }
         /**
          * @see de.esw.eengine.device.input.AbstractMouseListener#mouseMoved(java.awt.event.MouseEvent)
          */
         @Override
         public void mouseMoved(MouseEvent e) {
             Core.getLogger().info("Recieved mouse moved: " + e);
         }
         /**
          * @see de.esw.eengine.device.input.AbstractMouseListener#mouseWheelMoved(java.awt.event.MouseWheelEvent)
          */
         @Override
         public void mouseWheelMoved(MouseWheelEvent e) {
             Core.getLogger().info("Recieved mouse wheel: " + e);
         }
     }
     /**
      *
      */
     public Main() {
         this.renderDevice = null;
         this.keyboardDevice = null;
         this.mouseDevice = null;
     }
     /**
      * @return True on successfull init, false otherwise
      */
     private boolean init() {
         Core.getInstance().initialize(RenderPipeline.OPENGL);
         try {
             // this.renderDevice = Core.instance().createRenderDevice(
             // FullscreenRenderDevice.class);
             this.renderDevice = Core.getInstance().createRenderDevice(
                     WindowRenderDevice.class);
             this.renderDevice.open(new DisplayMode(800, 600, 16,
                     DisplayMode.REFRESH_RATE_UNKNOWN));
             // Add system input device
             new SystemInputDevice(this.renderDevice);
             // Add keyboard input
             this.keyboardDevice = Core.getInstance().createInputDevice(
                     KeyboardInputDevice.class);
             this.keyboardDevice.addInputListener(new KeyboardInputListener());
             this.renderDevice.attachInputDevice(this.keyboardDevice);
             // Add mouse input
             this.mouseDevice = Core.getInstance().createInputDevice(
                     MouseInputDevice.class);
             this.mouseDevice.addInputListener(new MouseInputListener());
             this.renderDevice.attachInputDevice(this.mouseDevice);
         } catch (EEngineException e) {
             Core.getLogger().log(Level.WARNING, e.getMessage(), e);
             return false;
         }
         return true;
     }
     /**
      * Tutorials main loop
      *
      * @throws EEngineException
      *             Thrown on some engine error
      */
     private void run() throws EEngineException {
         final Timer fpsTimer = new Timer();
         int fps = 0;
         float numFrames = 0;
         Text fpsText = new Text("FPSText", "FPS: " + fps, 10, 580);
         fpsText.setColor(Color.WHITE);
         while (this.renderDevice.isOpen()) {
             if (this.renderDevice.begin()) {
                 this.renderDevice.clear(Color.BLACK);
                 fpsText.render();
             }
             this.renderDevice.end();
             this.renderDevice.flip();
             // Calculate FPS
             numFrames++;
             if (fpsTimer.getDeltaTime(false) > 1000) {
                 fps = Math.round(numFrames / fpsTimer.getDeltaTime() * 1000);
                 numFrames = 0;
                 fpsText.setText("FPS: " + fps);
             }
         }
     }
     /**
      *
      */
     private void shutdown() {
         this.renderDevice.close();
         Core.getInstance().shutdown();
     }
     /**
      * @param args
      */
     public static void main(String[] args) {
         try {
             Main app = new Main();
             try {
                 if (app.init()) {
                     app.run();
                 }
             } finally {
                 app.shutdown();
             }
         } catch (EEngineException e) {
             Core.getLogger().log(Level.WARNING, e.getMessage(), e);
         }
         System.exit(0);
     }
 }