안녕하세요.


지난시간에는 버튼을 눌렀을때 콘솔창에 출력시키는 것까지 성공시켰습니다.


그런데 각 버튼의 액션함수마다 코딩을 하는건 중복이기 때문에 다른 방법을 사용해야될 필요성이 대두되었습니다.


답은 간단합니다. 전투용 함수를 이용하는 거죠. 아래를 보시죠.




배틀함수를 만들고 각 액션함수에서 호출해줬습니다. 이렇게 하면 전투내용을 배틀함수에 한번만 적어주면 되니 효율적이죠^^


자, 그럼 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를 만들어놓고 메세지가 콘솔에 출력이 되니 좀 모순이네요. 다음시간에는 라벨에다가 전투 메세지가 표시되도록 고쳐보겠습니다.


감사합니다.

+ Recent posts