package com.opticalcobra.storybear.game; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.lang.reflect.InvocationTargetException; import java.sql.SQLException; import com.opticalcobra.storybear.editor.Loadingscreen; import com.opticalcobra.storybear.menu.Menu; import com.opticalcobra.storybear.res.Button; public class Control implements KeyListener, ActionListener { // private char runDirection = 'n'; //n=not running, l=left, r=right // private char jumpDirection = 'n'; //n=not, u=jump up, d=duck down // private boolean doubleJump = false; // public char jumpStatus = 'n'; //n=no, y=yes, m=maybe --> tracks Doublejump public Window window; public Control(Window window) { this.window = window; } /** * @author Miriam */ @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()){ case KeyEvent.VK_RIGHT: Hero.getInstance().setRunDirection('r'); break; case KeyEvent.VK_LEFT: Hero.getInstance().setRunDirection('l'); break; case KeyEvent.VK_UP: Hero.getInstance().startJump(); break; case KeyEvent.VK_DOWN: break; case KeyEvent.VK_D: Hero.getInstance().setRunDirection('r'); break; case KeyEvent.VK_A: Hero.getInstance().setRunDirection('l'); break; case KeyEvent.VK_W: Hero.getInstance().startJump(); break; case KeyEvent.VK_S: break; } } /** * @author Miriam */ @Override public void keyReleased(KeyEvent e) { switch (e.getKeyCode()){ case KeyEvent.VK_RIGHT: case KeyEvent.VK_LEFT: Hero.getInstance().setRunDirection('n'); break; case KeyEvent.VK_UP: break; case KeyEvent.VK_DOWN: break; case KeyEvent.VK_D: case KeyEvent.VK_A: Hero.getInstance().setRunDirection('n'); break; case KeyEvent.VK_W: break; case KeyEvent.VK_S: break; } } /** * @author Miriam */ @Override public void keyTyped(KeyEvent e) { } @Override public void actionPerformed(ActionEvent e) { try { Class.forName("com.opticalcobra.storybear.game.Control").getMethod(((Button) e.getSource()).getMethod(), null).invoke(this, null); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | ClassNotFoundException e1) { e1.printStackTrace(); } } public void close(){ window.dispose(); } // public char getRunDirection() { // return runDirection; // } // // public void setRunDirection(char runDirection) { // this.runDirection = runDirection; // } // // public char getJumpDirection() { // return jumpDirection; // } // // public void setJumpDirection(char jumpDirection) { // this.jumpDirection = jumpDirection; // } // // public boolean getDoubleJump() { // return doubleJump; // } // // public void setDoubleJump(boolean doubleJump) { // this.doubleJump = doubleJump; // } }