import java.awt.Frame; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; public class MovementTest extends Frame implements Runnable, MouseMotionListener, KeyListener { private static Thread thread; private int mouseX, mouseY; private boolean movingRight; private boolean movingLeft; private boolean movingUp; private boolean movingDown; private Rectangle player = new Rectangle(50, 50, 100, 100); private Rectangle wallOne = new Rectangle(400, 50, 100, 100); public MovementTest() { setSize(800, 600); setVisible(true); addKeyListener(this); addMouseMotionListener(this); } public static void main(String[] args) { thread = new Thread(new MovementTest()); thread.start(); } @Override public void run() { try { while(true) { if(player.intersects(wallOne)) { thread.stop(); break; } if(movingRight) { player.x++; } else if(movingLeft) { player.x--; } if(movingUp) { player.y--; } else if(movingDown) { player.y++; } paint(getGraphics()); Thread.sleep(5); } } catch (InterruptedException e) { e.printStackTrace(); } } @Override public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_D) movingRight = true; if (key == KeyEvent.VK_A) movingLeft = true; if (key == KeyEvent.VK_W) movingUp = true; if (key == KeyEvent.VK_S) movingDown = true; } @Override public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_D) movingRight = false; if (key == KeyEvent.VK_A) movingLeft = false; if (key == KeyEvent.VK_W) movingUp = false; if (key == KeyEvent.VK_S) movingDown = false; } @Override public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub } public void paint(Graphics g) { g.drawString("x: " + mouseX + " y: " + mouseY, 5, 35); g.drawRect(player.x, player.y, 100, 100); g.drawRect(wallOne.x, wallOne.y, 100, 100); repaint(); } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent e) { mouseX = e.getX(); mouseY = e.getY(); } }