import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.Timer;
public class Controller extends KeyAdapter implements ActionListener {
Timer loop;
Booby booby;
boolean right;
boolean left;
boolean up;
boolean down;
int countUp = 0;
int jump = 0;
int countLeft = 0;
int countRight = 0;
Controller(Booby b, View v) {
booby = b;
loop = new Timer(0, this);
}
// Key events
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
switch (code) {
case KeyEvent.VK_UP:
up = true;
loop.start();
break;
case KeyEvent.VK_RIGHT:
right = true;
left = false;
loop.start();
break;
case KeyEvent.VK_LEFT:
left = true;
right = false;
loop.start();
break;
case KeyEvent.VK_DOWN:
left = false;
booby.movingLeft = false;
right = false;
booby.movingRight = false;
down = true;
break;
}
}
public void actionPerformed(ActionEvent evt) {
if (up) {
booby.movingUp = true;
countUp++;
jump++;
if (countUp <= 50 && countUp > 0) {
booby.move(0, -1);
if (right) {
booby.movingRight = true;
}
if (left) {
booby.movingLeft = true;
}
}
else if (countUp > 50) {
if (jump <= 100) {
booby.move(0, 1);
} else if (jump > 100) {
loop.stop();
right = false;
left = false;
down = false;
booby.movingRight = false;
booby.movingLeft = false;
booby.movingUp = false;
up = false;
jump = 0;
countUp = 0;
}
}
if (booby.movingRight) {
booby.move(1, 0);
}
if (booby.movingLeft) {
booby.move(-1, 0);
}
}
else if (right) {
booby.movingLeft = false;
booby.movingRight = true;
countRight++;
if (countRight <= 100) {
booby.move(1, 0);
} else {
countRight = 0;
right = false;
booby.movingRight = false;
loop.stop();
}
}
else if (left) {
booby.movingRight = false;
booby.movingLeft = true;
countLeft++;
if (countLeft <= 100) {
booby.move(-1, 0);
} else {
countLeft = 0;
left = false;
booby.movingLeft = false;
}
}
}
}