Q01

package day15;
// 로봇
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q004 extends Frame{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q004() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q004 mw = new Day15Q004();
}
}
Q02
4번문제에서 키보드 asdw를 누르면 상하좌우로 움직일수 있는 기능을 추가해보세요
package day15;
// 로봇 이동(asdw키)
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q005 extends Frame implements KeyListener{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q005() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 이벤트 처리
// 1. 이벤트 소스 : btn~
// 2. 리스너 추가 : KeyListener(키보드 감지)
btnhead.addKeyListener(this);
btnarml.addKeyListener(this);
btnarmr.addKeyListener(this);
btnlegl.addKeyListener(this);
btnlegr.addKeyListener(this);
btnbody.addKeyListener(this);
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q005 mw = new Day15Q005();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
System.out.println(code);
int headx = btnhead.getX();
int heady = btnhead.getY();
int arm1x = btnarml.getX();
int arm1y = btnarml.getY();
int armrx = btnarmr.getX();
int armry = btnarmr.getY();
int leglx = btnlegl.getX();
int legly = btnlegl.getY();
int legrx = btnlegr.getX();
int legry = btnlegr.getY();
int bodyx = btnbody.getX();
int bodyy = btnbody.getY();
// 버튼 a > 왼쪽 이동
if(code == 65) {
headx -= 10;
arm1x -= 10;
armrx -= 10;
leglx -= 10;
legrx -= 10;
bodyx -= 10;
// 버튼 d > 오른쪽 이동
} else if (code == 68) {
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
// 버튼 w > 위로 이동
} else if (code == 87) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 버튼 s > 아래로 이동
} else if (code == 83) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
}
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Q03
5번 문제에서 asdw대신 화살표 방향키로 움직일수 있도록 변경합니다.
package day15;
// 로봇 이동(화살표 방향키)
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q006 extends Frame implements KeyListener{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q006() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 이벤트 처리
// 1. 이벤트 소스 : btn~
// 2. 리스너 추가 : KeyListener(키보드 감지)
btnhead.addKeyListener(this);
btnarml.addKeyListener(this);
btnarmr.addKeyListener(this);
btnlegl.addKeyListener(this);
btnlegr.addKeyListener(this);
btnbody.addKeyListener(this);
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q006 mw = new Day15Q006();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
System.out.println(code);
int headx = btnhead.getX();
int heady = btnhead.getY();
int arm1x = btnarml.getX();
int arm1y = btnarml.getY();
int armrx = btnarmr.getX();
int armry = btnarmr.getY();
int leglx = btnlegl.getX();
int legly = btnlegl.getY();
int legrx = btnlegr.getX();
int legry = btnlegr.getY();
int bodyx = btnbody.getX();
int bodyy = btnbody.getY();
// 왼쪽 방향키 > 왼쪽 이동
if(code == 37) {
headx -= 10;
arm1x -= 10;
armrx -= 10;
leglx -= 10;
legrx -= 10;
bodyx -= 10;
// 오른쪽 방향키 > 오른쪽 이동
} else if (code == 39) {
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
// 위쪽 방향키 > 위로 이동
} else if (code == 38) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 아래쪽 방향키 > 아래로 이동
} else if (code == 40) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
}
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Q04
엔터키를 누르면 주먹이 발사되어 일정한 거리까지 앞으로 이동한후에 다시 돌아오도록 코드를 추가합니다.

package day15;
// 로봇 팔 발사
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q007 extends Frame implements KeyListener{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q007() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 이벤트 처리
// 1. 이벤트 소스 : btn~
// 2. 리스너 추가 : KeyListener(키보드 감지)
btnhead.addKeyListener(this);
btnarml.addKeyListener(this);
btnarmr.addKeyListener(this);
btnlegl.addKeyListener(this);
btnlegr.addKeyListener(this);
btnbody.addKeyListener(this);
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q007 mw = new Day15Q007();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
System.out.println(code);
// 버튼 위치 설정
int headx = btnhead.getX();
int heady = btnhead.getY();
int arm1x = btnarml.getX();
int arm1y = btnarml.getY();
int armrx = btnarmr.getX();
int armry = btnarmr.getY();
int leglx = btnlegl.getX();
int legly = btnlegl.getY();
int legrx = btnlegr.getX();
int legry = btnlegr.getY();
int bodyx = btnbody.getX();
int bodyy = btnbody.getY();
// 왼쪽 방향키 > 왼쪽 이동
if(code == 37) {
headx -= 10;
arm1x -= 10;
armrx -= 10;
leglx -= 10;
legrx -= 10;
bodyx -= 10;
// 오른쪽 방향키 > 오른쪽 이동
} else if (code == 39) {
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
// 위쪽 방향키 > 위로 이동
} else if (code == 38) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 아래쪽 방향키 > 아래로 이동
} else if (code == 40) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
// 엔터키 누르면 팔 발사
} else if (code == 10) {
for (int i = 0; i <30; i++) {
armrx += 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 하강
for (int i =0; i < 30; i++) {
armrx -= 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
} // 엔터키 end
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Q05 스페이스바를 누르면 점프 할수 있도록 기능을 추가하세요
package day15;
// 로봇 이동(스페이스바 누르면 점프)
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q008 extends Frame implements KeyListener{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q008() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 이벤트 처리
// 1. 이벤트 소스 : btn~
// 2. 리스너 추가 : KeyListener(키보드 감지)
btnhead.addKeyListener(this);
btnarml.addKeyListener(this);
btnarmr.addKeyListener(this);
btnlegl.addKeyListener(this);
btnlegr.addKeyListener(this);
btnbody.addKeyListener(this);
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q008 mw = new Day15Q008();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
System.out.println(code);
// 버튼 위치 설정
int headx = btnhead.getX();
int heady = btnhead.getY();
int arm1x = btnarml.getX();
int arm1y = btnarml.getY();
int armrx = btnarmr.getX();
int armry = btnarmr.getY();
int leglx = btnlegl.getX();
int legly = btnlegl.getY();
int legrx = btnlegr.getX();
int legry = btnlegr.getY();
int bodyx = btnbody.getX();
int bodyy = btnbody.getY();
// 왼쪽 방향키 > 왼쪽 이동
if(code == 37) {
headx -= 10;
arm1x -= 10;
armrx -= 10;
leglx -= 10;
legrx -= 10;
bodyx -= 10;
// 오른쪽 방향키 > 오른쪽 이동
} else if (code == 39) {
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
// 위쪽 방향키 > 위로 이동
} else if (code == 38) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 아래쪽 방향키 > 아래로 이동
} else if (code == 40) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
// 엔터키 누르면 팔 발사
} else if (code == 10) {
for (int i = 0; i <30; i++) {
armrx += 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 팔 돌아오기
for (int i =0; i < 30; i++) {
armrx -= 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 스페이스 바 누르면 점프
} else if (code == 32) {
for (int i = 0; i <20; i++) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 하강
for (int i =0; i < 20; i++) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Q6 8번 문제에서 스페이스바를 누르면 앞으로 점프하도록 코드를 수정하세요
package day15;
// 로봇 이동(스페이스바 누르면 앞으로 점프)
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q009 extends Frame implements KeyListener{
Button btnhead, btnarml, btnarmr, btnlegl, btnlegr, btnbody;
Day15Q009() {
// 배치 관리자 사용 안함
setLayout(null);
// 컴포넌트 초기화
btnhead = new Button("^^");
btnarml = new Button();
btnarmr = new Button();
btnlegl = new Button();
btnlegr = new Button();
btnbody = new Button();
// 이벤트 처리
// 1. 이벤트 소스 : btn~
// 2. 리스너 추가 : KeyListener(키보드 감지)
btnhead.addKeyListener(this);
btnarml.addKeyListener(this);
btnarmr.addKeyListener(this);
btnlegl.addKeyListener(this);
btnlegr.addKeyListener(this);
btnbody.addKeyListener(this);
// 버튼 크기, 위치 지정
btnhead.setBounds(300, 270, 150, 100);
btnarml.setBounds(240, 400, 50, 100);
btnarmr.setBounds(460, 400, 100, 50);
btnlegl.setBounds(320, 570, 50, 100);
btnlegr.setBounds(380, 570, 50, 100);
btnbody.setBounds(300, 400, 150, 150);
// 컴포넌트 부착
add(btnhead);
add(btnarml);
add(btnarmr);
add(btnlegl);
add(btnlegr);
add(btnbody);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q009 mw = new Day15Q009();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
System.out.println(code);
// 버튼 위치 설정
int headx = btnhead.getX();
int heady = btnhead.getY();
int arm1x = btnarml.getX();
int arm1y = btnarml.getY();
int armrx = btnarmr.getX();
int armry = btnarmr.getY();
int leglx = btnlegl.getX();
int legly = btnlegl.getY();
int legrx = btnlegr.getX();
int legry = btnlegr.getY();
int bodyx = btnbody.getX();
int bodyy = btnbody.getY();
// 왼쪽 방향키 > 왼쪽 이동
if(code == 37) {
headx -= 10;
arm1x -= 10;
armrx -= 10;
leglx -= 10;
legrx -= 10;
bodyx -= 10;
// 오른쪽 방향키 > 오른쪽 이동
} else if (code == 39) {
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
// 위쪽 방향키 > 위로 이동
} else if (code == 38) {
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 아래쪽 방향키 > 아래로 이동
} else if (code == 40) {
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
// 엔터키 누르면 팔 발사
} else if (code == 10) {
for (int i = 0; i <30; i++) {
armrx += 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 하강
for (int i =0; i < 30; i++) {
armrx -= 20;
btnarmr.setLocation(armrx, armry);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 스페이스 바 누르면 점프
} else if (code == 32) {
for (int i = 0; i <20; i++) {
// 위로 점프
heady -= 10;
arm1y -= 10;
armry -= 10;
legly -= 10;
legry -= 10;
bodyy -= 10;
// 뛰면서 앞으로 이동
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 하강
for (int i =0; i < 20; i++) {
// 내려옴
heady += 10;
arm1y += 10;
armry += 10;
legly += 10;
legry += 10;
bodyy += 10;
// 내려오면서 앞으로 이동
headx += 10;
arm1x += 10;
armrx += 10;
leglx += 10;
legrx += 10;
bodyx += 10;
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
btnbody.setLocation(bodyx, bodyy);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
btnhead.setLocation(headx, heady);
btnarml.setLocation(arm1x, arm1y);
btnarmr.setLocation(armrx, armry);
btnlegl.setLocation(leglx, legly);
btnlegr.setLocation(legrx, legry);
Q07 8번문제의 기능을 버튼 배열로 처리해서 풀어보세요
package day15;
// 로봇 이동(스페이스바 누르면 점프) > 배열
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Day15Q011 extends Frame implements KeyListener{
Button[] btn = new Button[6];
Day15Q011() {
// 배치 관리자 사용 안함
setLayout(null);
// btn[0] 컴포넌트 초기화, 부착, 이벤트 처리
btn[0] = new Button("^ ^");
add(btn[0]);
btn[0].addKeyListener(this);
// 반복문으로 컴포넌트 초기화, 부착, 이벤트 처리
for(int i=1; i<btn.length; i++) {
btn[i] = new Button();
add(btn[i]);
btn[i].addKeyListener(this);
}
// 버튼 크기, 위치 지정
btn[0].setBounds(300, 270, 150, 100);
btn[1].setBounds(240, 400, 50, 100);
btn[2].setBounds(460, 400, 100, 50);
btn[3].setBounds(320, 570, 50, 100);
btn[4].setBounds(380, 570, 50, 100);
btn[5].setBounds(300, 400, 150, 150);
addWindowListener (new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("종료합니다.");
System.exit(0);
}
});
// 창 생성
setBounds(200, 10, 1200, 900);
setVisible(true);
}
public static void main(String[] args) {
Day15Q011 mw = new Day15Q011();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// key code 가져오기
int code = e.getKeyCode();
// System.out.println(code);
// 반복문 : 왼쪽 방향키 > 왼쪽 이동
if(code == 37) {
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
x -= 10;
btn[i].setLocation(x,y);
}
}
// 오른쪽 방향키 > 오른쪽 이동
} else if (code == 39) {
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
x += 10;
btn[i].setLocation(x,y);
}
}
// 위쪽 방향키 > 위로 이동
} else if (code == 38) {
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
y -= 10;
btn[i].setLocation(x,y);
}
}
// 아래쪽 방향키 > 아래로 이동
} else if (code == 40) {
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
y += 10;
btn[i].setLocation(x,y);
}
}
// 엔터키 누르면 팔 발사
} else if (code == 10) {
for (int i = 0; i < 30; i++) {
int x = btn[2].getX();
int y = btn[2].getY();
x += 20;
btn[2].setLocation(x,y);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 팔 돌아옴
for (int i = 0; i < 30; i++) {
int x = btn[2].getX();
int y = btn[2].getY();
x -= 20;
btn[2].setLocation(x,y);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
// 스페이스 바 누르면 점프
} else if (code == 32) {
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
y -= 20;
btn[i].setLocation(x,y);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
}
}
// 하강
for(int j=0; j<20; j++) {
for(int i=0; i<btn.length; i++) {
int x = btn[i].getX();
int y = btn[i].getY();
y += 20;
btn[i].setLocation(x,y);
// 잠시 멈췄다가 실행되는 기능
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 1000분의 1초
} // i for문 end
} // j for 문 end
} // if end
} // event end
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}