States can be achieved with enums, I'm writing a similar game too and thanks to @Anko I implementimplemented his solution like this:
public enum PaddleWay {
UP, DOWN, STOP
}
}
private void handleMovement(){
if(p1paddleway == PaddleWay.STOP) {
paddle1yPos = paddle1yPos;
}
if(p1paddleway == PaddleWay.UP) {
paddle1yPos -= PADDLESPEED;
}
if(p1paddleway == PaddleWay.DOWN) {
paddle1yPos += PADDLESPEED;
}
if(p2paddleway == PaddleWay.STOP) {
paddle2yPos = paddle2yPos;
}
if(p2paddleway == PaddleWay.UP) {
paddle2yPos -= PADDLESPEED;
}
if(p2paddleway == PaddleWay.DOWN) {
paddle2yPos += PADDLESPEED;
}
}
@Override
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()) {
//p1 inputs
case KeyEvent.VK_A:
p1paddleway = PaddleWay.UP;
break;
case KeyEvent.VK_Z:
p1paddleway = PaddleWay.DOWN;
break;
//p2 inputs
case KeyEvent.VK_O:
p2paddleway = PaddleWay.UP;
break;
case KeyEvent.VK_K:
p2paddleway = PaddleWay.DOWN;
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode()) {
//p1 inputs
case KeyEvent.VK_A:
p1paddleway = PaddleWay.STOP;
break;
case KeyEvent.VK_Z:
p1paddleway = PaddleWay.STOP;
break;
//p2 inputs
case KeyEvent.VK_O:
p2paddleway = PaddleWay.STOP;
break;
case KeyEvent.VK_K:
p2paddleway = PaddleWay.STOP;
break;
}
it'sIt's a little long but you can just copy paste once you write one method and simply manipulate.