JPanel - 이미지
JLabel - 캐릭터
이벤트루프 처리 -> 이벤트 핸들러가 존재한다
이벤트루프가 종료 하려면 이벤트 핸들러가 종료 되어야 함
키보드 프레스가 눌러지면 리스너가 감지 대기열 Que에 들어간다 -> 대기항목이 이벤트 루프에 들어가면 핸들러가 동작
ex ) Main Thread 이벤트 리스너 감지해서 대기열(Que)등록하는 역할 (Bubble Frame 키보드 입력 받기)
sub 1 Left 이벤트 핸들러 , sub 2 Right 이벤트 핸들러.... 등등
addKeyListener(new KeyAdapter() { // 람다식으로 Interface를 가져올시 전부 기능을 정의 해야함 하지만 Adapter를 사용해서 정의가 가능하다
// 키보드 클릭 이벤트 핸들러
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
if (!player.isLeft() && !player.isLeftWallCrash()) {
player.left(); // 5초
}
break;
case KeyEvent.VK_RIGHT:
if (!player.isRight() && !player.isRightWallCrash()) {
player.right(); // 3초
}
break;
case KeyEvent.VK_UP:
if (!player.isUp() && !player.isDown()) {
player.up();
}
break;
// case KeyEvent.VK_DOWN: 떨어지거나 할때 사용하는데 따로 down키를 눌릴 일이 없다
// player.down();
// break;
}
// 5 + 3초 8초가 지날때까지 다른입력이 안된다
Thread가 여러개 있어야 동시동작이 가능해 진다
'Java' 카테고리의 다른 글
버블버블 코드 리팩토링 (객체지향) (0) | 2022.10.10 |
---|---|
bubble - 물방울 메모리에서 소멸시키고 화면 다시 그리기 (0) | 2022.10.10 |
버블이(?)가 달라졌어요 (0) | 2022.10.06 |
버블버블 etc - 이벤트 리스너 원리 (0) | 2022.10.06 |
자바 버블버블5 - 캐릭터 좌우이동 (0) | 2022.10.06 |