안녕하세요.
지난시간에는 버튼을 눌렀을때 콘솔창에 출력시키는 것까지 성공시켰습니다.
그런데 각 버튼의 액션함수마다 코딩을 하는건 중복이기 때문에 다른 방법을 사용해야될 필요성이 대두되었습니다.
답은 간단합니다. 전투용 함수를 이용하는 거죠. 아래를 보시죠.
배틀함수를 만들고 각 액션함수에서 호출해줬습니다. 이렇게 하면 전투내용을 배틀함수에 한번만 적어주면 되니 효율적이죠^^
자, 그럼 1탄에서 사용했던 코드를 배틀함수에 넣어보겠습니다.
이런 모습이 되겠죠.
그런데 h, s1, s2 변수에 에러가 나있네요. 에러메세지를 보면 '해석할 수 없다'고 나옵니다. 그 이유는 세 변수가 메인함수 내에서 선언된 지역변수이기 때문입니다. 전역변수인 s는 에러가 나있지 않죠?
그렇다면 세 변수를 전역변수로 변신시킵시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | // Study01.java package study; import java.awt.Font; import java.util.Enumeration; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.UIManager; import javax.swing.plaf.FontUIResource; public class Study01 { // 빈 슬라임 변수 static Slime s = null; // 슬라임과 인간 객체 생성 static Slime s1 = new Slime("슬라삐"); static Slime s2 = new Slime("슬라디"); static Human h = new Human("알렉스"); public static void main(String[] args) { // [start] 디자인 코드 // 라벨 변수 선언 JLabel lbl; | cs |
이렇게 되겠죠. static 함수인 메인함수에서도 사용되어야 하니 앞에 static도 붙였습니다.
자, 이제 보다 업그레이드 된 게임이 완성되었네요. 실행해봅시다!
잘되시나요? ㅎㅎ
그런데 기껏 GUI를 만들어놓고 메세지가 콘솔에 출력이 되니 좀 모순이네요. 다음시간에는 라벨에다가 전투 메세지가 표시되도록 고쳐보겠습니다.
감사합니다.
'자바로 게임 만들기' 카테고리의 다른 글
[자바로 게임 만들기] 58. 빈 슬라임 변수의 삭제 (0) | 2019.03.18 |
---|---|
[자바로 게임 만들기] 57. 디자인 수정 (0) | 2019.03.15 |
[자바로 게임 만들기] 55. 이벤트 함수의 특성 (0) | 2019.03.13 |
[자바로 게임 만들기] 54. 지역변수를 전역변수로 (0) | 2019.03.12 |
[자바로 게임 만들기] 53. 축구선수 클래스 (전역변수, 지역변수) (0) | 2019.03.11 |