package TaiGameCore; import java.awt.event.KeyEvent; import java.util.HashSet; import java.util.Set; import processing.core.PApplet; public class TaiInput { /** * To get radians counterclockwise (polar), do PI*(DIR/4.0) * * NOTE: check for -1 first though!!!! */ public static final int UP=2, DOWN=6, LEFT=4, RIGHT=0, UPRIGHT=1, UPLEFT=3, DOWNLEFT=5, DOWNRIGHT=7; /** * Returns 0-8 depending on the current arrow keys pressed on G. * * NOT THREAD SAFE!!!!! */ private static Set<Integer> singleKey = new HashSet<Integer>(); public static int getDirectionalFromKeys(int single){ singleKey.clear(); singleKey.add(single); return getDirectionalFromKeys(singleKey); } public static int getDirectionalFromKeys(Set<Integer> pressedButtons){ if (pressedButtons.contains(KeyEvent.VK_LEFT)){ if (pressedButtons.contains(KeyEvent.VK_UP)){ return UPLEFT; } if (pressedButtons.contains(KeyEvent.VK_DOWN)){ return DOWNLEFT; } return LEFT; } if (pressedButtons.contains(KeyEvent.VK_RIGHT)){ if (pressedButtons.contains(KeyEvent.VK_UP)){ return UPRIGHT; } if (pressedButtons.contains(KeyEvent.VK_DOWN)){ return DOWNRIGHT; } return RIGHT; } if (pressedButtons.contains(KeyEvent.VK_UP)){ return UP; } if (pressedButtons.contains(KeyEvent.VK_DOWN)){ return DOWN; } return -1; } }