GameEngineKeyEvents

 package com.bithome.events;


import com.bithome.engine.GameContainer;
import com.sun.org.apache.xpath.internal.operations.Bool;

import java.awt.event.*;

public class Input implements KeyListener, MouseWheelListener, MouseListener, MouseMotionListener {
private final int NUM_KEYS = 256;
private final int NUM_BUTTONS = 5;

private Boolean[] keys = new Boolean[NUM_KEYS];
private Boolean[] keysLast = new Boolean[NUM_KEYS];

private Boolean[] buttons = new Boolean[NUM_BUTTONS];
private Boolean[] buttonsLast = new Boolean[NUM_BUTTONS];

private int mouseX, mouseY;
private int scroll;

private GameContainer gc = null;

public Input(GameContainer gc) {
this.gc = gc;
mouseX = 0;
mouseY = 0;
scroll = 0;

gc.getWindow().getCanvas().addKeyListener(this);
gc.getWindow().getCanvas().addMouseWheelListener(this);
gc.getWindow().getCanvas().addMouseMotionListener(this);
gc.getWindow().getCanvas().addMouseListener(this);

for(int i = 0; i < NUM_KEYS; i++) {
keys[i] = false;
keysLast[i] = false;
}
}

public void update() {
for(int i = 0; i < NUM_KEYS; i++) {
keysLast[i] = keys[i];
}

for(int i = 0; i < NUM_BUTTONS; i++) {
buttonsLast[i] = buttons[i];
}
}

public void keyTyped(KeyEvent keyEvent) {

}

public void keyPressed(KeyEvent keyEvent) {
keys[keyEvent.getKeyCode()] = true;
}

public void keyReleased(KeyEvent keyEvent) {
keys[keyEvent.getKeyCode()] = false;
}

public void mouseClicked(MouseEvent mouseEvent) {

}

public void mousePressed(MouseEvent mouseEvent) {
buttons[mouseEvent.getButton()] = true;
}

public void mouseReleased(MouseEvent mouseEvent) {
buttons[mouseEvent.getButton()] = false;
}

public void mouseEntered(MouseEvent mouseEvent) {

}

public void mouseExited(MouseEvent mouseEvent) {

}

public void mouseDragged(MouseEvent mouseEvent) {
mouseX = mouseEvent.getX() / (int)GameContainer.scale;
mouseY = mouseEvent.getY() / (int)GameContainer.scale;
}

public void mouseMoved(MouseEvent mouseEvent) {
mouseX = mouseEvent.getX() / (int)GameContainer.scale;
mouseY = mouseEvent.getY() / (int)GameContainer.scale;
}

public void mouseWheelMoved(MouseWheelEvent mouseWheelEvent) {
scroll = mouseWheelEvent.getWheelRotation();
}

public int getMouseX() {
return mouseX;
}

public int getMouseY() {
return mouseY;
}

public int getScroll() {
return scroll;
}

public boolean isKey(int keycode) {
return keys[keycode];
}

public boolean isKeyUp(int keycode) {
return keysLast[keycode] && !keys[keycode];
}

public boolean isKeyDown(int keycode) {
return keys[keycode] && !keysLast[keycode];
}

public boolean isButton(int buttonCode) {
return buttons[buttonCode];
}

public boolean isButtonUp(int buttonCode) {
return !buttons[buttonCode] && buttonsLast[buttonCode];
}

public boolean isButtonDown(int buttonCode) {
return !buttonsLast[buttonCode] && buttons[buttonCode];
}
}

Comments

Popular posts from this blog