mirror of
https://github.com/jneug/zeichenmaschine.git
synced 2026-04-14 14:43:33 +02:00
Closes #6 (Keybord Input)
This commit is contained in:
@@ -48,18 +48,25 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
|
|
||||||
protected double mouseX = 0.0, mouseY = 0.0, pmouseX = 0.0, pmouseY = 0.0;
|
protected double mouseX = 0.0, mouseY = 0.0, pmouseX = 0.0, pmouseY = 0.0;
|
||||||
|
|
||||||
|
protected boolean mousePressed = false;
|
||||||
|
|
||||||
|
protected int mouseButton = 0;
|
||||||
|
|
||||||
|
protected char key = ' ';
|
||||||
|
|
||||||
|
protected int keyCode = 0;
|
||||||
|
|
||||||
|
protected boolean keyPressed = false;
|
||||||
|
|
||||||
protected int width, height;
|
protected int width, height;
|
||||||
|
|
||||||
protected int screenWidth, screenHeight;
|
protected int screenWidth, screenHeight;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Interne Attribute zur Steuerung der Zeichenmaschine.
|
* Interne Attribute zur Steuerung der Zeichenmaschine.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Object mouseLock = new Object();
|
|
||||||
|
|
||||||
private Object keyboardLock = new Object();
|
|
||||||
|
|
||||||
private JFrame frame;
|
private JFrame frame;
|
||||||
|
|
||||||
private GraphicsEnvironment environment;
|
private GraphicsEnvironment environment;
|
||||||
@@ -132,6 +139,7 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
|
|
||||||
canvas.addMouseListener(this);
|
canvas.addMouseListener(this);
|
||||||
canvas.addMouseMotionListener(this);
|
canvas.addMouseMotionListener(this);
|
||||||
|
canvas.addKeyListener(this);
|
||||||
frame.addWindowListener(new WindowAdapter() {
|
frame.addWindowListener(new WindowAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void windowClosing( WindowEvent e ) {
|
public void windowClosing( WindowEvent e ) {
|
||||||
@@ -396,10 +404,9 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
/*
|
/*
|
||||||
* Mouse handling
|
* Mouse handling
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked( MouseEvent e ) {
|
public final void mouseClicked( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
saveMousePosition(e);
|
||||||
mouseClicked();
|
mouseClicked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,8 +414,9 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed( MouseEvent e ) {
|
public final void mousePressed( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
saveMousePosition(e);
|
||||||
|
mousePressed = true;
|
||||||
mousePressed();
|
mousePressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -416,8 +424,9 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseReleased( MouseEvent e ) {
|
public final void mouseReleased( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
saveMousePosition(e);
|
||||||
|
mousePressed = false;
|
||||||
mouseReleased();
|
mouseReleased();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -425,18 +434,18 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseEntered( MouseEvent e ) {
|
public final void mouseEntered( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
// Intentionally left blank
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseExited( MouseEvent e ) {
|
public final void mouseExited( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
// Intentionally left blank
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDragged( MouseEvent e ) {
|
public final void mouseDragged( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
saveMousePosition(e);
|
||||||
mouseDragged();
|
mouseDragged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,8 +454,8 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseMoved( MouseEvent e ) {
|
public final void mouseMoved( MouseEvent e ) {
|
||||||
saveMousePosition(e.getPoint());
|
saveMousePosition(e);
|
||||||
mouseMoved();
|
mouseMoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,41 +463,31 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveMousePosition( Point pLocation ) {
|
private void saveMousePosition( MouseEvent e ) {
|
||||||
//pmouseX = mouseX;
|
|
||||||
//pmouseY = mouseY;
|
|
||||||
/*synchronized(mouseLock) {
|
|
||||||
mouseX = pLocation.getX()-this.getRootPane().getX();
|
|
||||||
mouseY = pLocation.getY()-this.getRootPane().getY();
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveMousePosition() {
|
|
||||||
pmouseX = mouseX;
|
pmouseX = mouseX;
|
||||||
pmouseY = mouseY;
|
pmouseY = mouseY;
|
||||||
|
|
||||||
// TODO: Seems not right ...
|
mouseX = e.getX();
|
||||||
java.awt.Point mouseLoc = MouseInfo.getPointerInfo().getLocation();
|
mouseY = e.getY();
|
||||||
java.awt.Point compLoc = canvas.getLocationOnScreen();
|
|
||||||
mouseX = mouseLoc.x - compLoc.x;
|
|
||||||
mouseY = mouseLoc.y - compLoc.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void keyTyped( KeyEvent e ) {
|
|
||||||
keyTyped();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard handling
|
* Keyboard handling
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
|
public final void keyTyped( KeyEvent e ) {
|
||||||
|
saveKeys(e);
|
||||||
|
keyTyped();
|
||||||
|
}
|
||||||
|
|
||||||
public void keyTyped() {
|
public void keyTyped() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void keyPressed( KeyEvent e ) {
|
public final void keyPressed( KeyEvent e ) {
|
||||||
|
saveKeys(e);
|
||||||
|
keyPressed = true;
|
||||||
keyPressed();
|
keyPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -497,7 +496,9 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void keyReleased( KeyEvent e ) {
|
public final void keyReleased( KeyEvent e ) {
|
||||||
|
saveKeys(e);
|
||||||
|
keyPressed = false;
|
||||||
keyReleased();
|
keyReleased();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -505,6 +506,11 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final void saveKeys( KeyEvent e ) {
|
||||||
|
key = e.getKeyChar();
|
||||||
|
keyCode = e.getKeyCode();
|
||||||
|
}
|
||||||
|
|
||||||
class Zeichenthread extends Thread {
|
class Zeichenthread extends Thread {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -535,7 +541,7 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
|
|||||||
delta = (System.nanoTime() - beforeTime) / 1000000000.0;
|
delta = (System.nanoTime() - beforeTime) / 1000000000.0;
|
||||||
beforeTime = System.nanoTime();
|
beforeTime = System.nanoTime();
|
||||||
|
|
||||||
saveMousePosition();
|
//saveMousePosition();
|
||||||
|
|
||||||
handleUpdate(delta);
|
handleUpdate(delta);
|
||||||
handleDraw();
|
handleDraw();
|
||||||
|
|||||||
Reference in New Issue
Block a user