Added Start/Pause feature to [Enter]
Cleaned up redundant key event handling code Signed-off-by: Ricky Barrette <rickbarrette@gmail.com>
This commit is contained in:
@@ -31,7 +31,7 @@ public class AsteroidGame extends Thread {
|
|||||||
private static final int DELAY_IN_MSEC = 50;
|
private static final int DELAY_IN_MSEC = 50;
|
||||||
private Vector<Object> mWorld;
|
private Vector<Object> mWorld;
|
||||||
private GameFrame mGameFrame;
|
private GameFrame mGameFrame;
|
||||||
public static boolean isStarted = false;
|
public boolean isStarted = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an new Asteroids game
|
* Creates an new Asteroids game
|
||||||
|
|||||||
@@ -152,70 +152,21 @@ public class GameFrame extends JFrame implements KeyListener, ActionListener{
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void keyPressed(KeyEvent e) {
|
public void keyPressed(KeyEvent e) {
|
||||||
Object item;
|
|
||||||
for (int i = 0; i < mGame.getWorld().size(); i++) {
|
switch(e.getKeyCode()){
|
||||||
item = mGame.getWorld().get(i);
|
/*
|
||||||
if (item instanceof Ship) {
|
* [Enter]
|
||||||
Ship ship = (Ship) item;
|
* Start of pause the game
|
||||||
switch (e.getKeyCode()) {
|
*/
|
||||||
|
case KeyEvent.VK_ENTER:
|
||||||
/*
|
if(mGame.isStarted)
|
||||||
* [Left arrow] or [A]
|
mGame.pauseGame();
|
||||||
* Rotate the ship left
|
else
|
||||||
*/
|
mGame.startGame();
|
||||||
case KeyEvent.VK_A:
|
break;
|
||||||
case KeyEvent.VK_LEFT:
|
|
||||||
ship.setTurningLeft(true);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Space] Pew Pew Pew!!!
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_SPACE:
|
|
||||||
mGame.addElement(new Shot(ship.getX(), ship.getY(), ship.getAngle(), ship.getXVelocity(), ship.getYVelocity(), mGame));
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Right arrow] or [D]
|
|
||||||
* Rotate the ship right
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_D:
|
|
||||||
case KeyEvent.VK_RIGHT:
|
|
||||||
ship.setTurningRight(true);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Up arrow] or [W]
|
|
||||||
* Increase the ship's speed
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_W:
|
|
||||||
case KeyEvent.VK_UP:
|
|
||||||
ship.setAccelerating(true);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Down arrow] or [S]
|
|
||||||
* Slow the ship
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_S:
|
|
||||||
case KeyEvent.VK_DOWN:
|
|
||||||
ship.setAccelerating(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [H] Hyoer jump
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_H:
|
|
||||||
Random myRNG = new Random();
|
|
||||||
ship.setLocation(myRNG.nextInt(mDisplay.getHeight()), myRNG.nextInt(mDisplay.getWidth()));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mDisplay.repaint();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
driveShip(e, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -225,55 +176,85 @@ public class GameFrame extends JFrame implements KeyListener, ActionListener{
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void keyReleased(KeyEvent e) {
|
public void keyReleased(KeyEvent e) {
|
||||||
|
driveShip(e, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Drives the user's ship
|
||||||
|
* @param e
|
||||||
|
* @param isKeyPressed
|
||||||
|
* @author ricky barrette
|
||||||
|
*/
|
||||||
|
private void driveShip(KeyEvent e, boolean isKeyPressed) {
|
||||||
|
Ship ship = null;
|
||||||
|
//get the user's ship
|
||||||
for (Object item : mGame.getWorld()) {
|
for (Object item : mGame.getWorld()) {
|
||||||
if (item instanceof Ship) {
|
if (item instanceof Ship) {
|
||||||
Ship ship = (Ship) item;
|
ship = (Ship) item;
|
||||||
|
|
||||||
switch (e.getKeyCode()) {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Left arrow] or [A]
|
|
||||||
* Rotate the ship left
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_A:
|
|
||||||
case KeyEvent.VK_LEFT:
|
|
||||||
ship.setTurningLeft(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Right arrow] or [d] Rotate the ship right
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_D:
|
|
||||||
case KeyEvent.VK_RIGHT:
|
|
||||||
ship.setTurningRight(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Up arrow] or [W]
|
|
||||||
* Increase the ship's speed
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_W:
|
|
||||||
case KeyEvent.VK_UP:
|
|
||||||
ship.setAccelerating(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* [Down arrow] or [S]
|
|
||||||
* Slow the ship
|
|
||||||
*/
|
|
||||||
case KeyEvent.VK_S:
|
|
||||||
case KeyEvent.VK_DOWN:
|
|
||||||
ship.setAccelerating(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ship != null)
|
||||||
|
switch(e.getKeyCode()){
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [Left arrow] or [A]
|
||||||
|
* Rotate the ship left
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_A:
|
||||||
|
case KeyEvent.VK_LEFT:
|
||||||
|
ship.setTurningLeft(isKeyPressed);
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [Right arrow] or [d] Rotate the ship right
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_D:
|
||||||
|
case KeyEvent.VK_RIGHT:
|
||||||
|
ship.setTurningRight(isKeyPressed);
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [Up arrow] or [W]
|
||||||
|
* Increase the ship's speed
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_W:
|
||||||
|
case KeyEvent.VK_UP:
|
||||||
|
ship.setAccelerating(isKeyPressed);
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [Down arrow] or [S]
|
||||||
|
* Slow the ship
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_S:
|
||||||
|
case KeyEvent.VK_DOWN:
|
||||||
|
ship.setAccelerating(isKeyPressed);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [H] Hyoer jump
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_H:
|
||||||
|
if(isKeyPressed){
|
||||||
|
Random myRNG = new Random();
|
||||||
|
ship.setLocation(myRNG.nextInt(mDisplay.getHeight()), myRNG.nextInt(mDisplay.getWidth()));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* [Space] Pew Pew Pew!!!
|
||||||
|
*/
|
||||||
|
case KeyEvent.VK_SPACE:
|
||||||
|
if(isKeyPressed)
|
||||||
|
mGame.addElement(new Shot(ship.getX(), ship.getY(), ship.getAngle(), ship.getXVelocity(), ship.getYVelocity(), mGame));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void keyTyped(KeyEvent e) {
|
public void keyTyped(KeyEvent e) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user