안녕하세요.

 

문득 코드를 더 간결하고 이해하기 쉽게 리펙토링하는 방법이 생각나서 적용해볼까 합니다.

 

기존 코드는 슬라임 객체 따로, 슬라임 그림을 표시하는 라벨 객체 따로였는데요, 그래서 코드도 길어지고 다루기도 힘들었습니다.

 

그래서 슬라임 클래스와 라벨 클래스를 합체시켜 버리도록 합시다. 어떻게요? 슬라임클래스가 라벨 클래스를 상속하는 거죠. 아래를 봅시다.

 

슬라임 클래스는 이렇게 9행만 살짝 수정하면 됩니다. 다른건 건드릴 필요가 없어요.

 

몇글자 추가한 거 밖에 없지만 영향력은 엄청납니다. 이제부터 슬라임 클래스는 라벨은 라벨인데 슬라임의 특성이 가미된 라벨입니다. 무슨말이냐구요? 차차 이해되실 겁니다.

 

이제 메인클래스인 스터디01로 가봅시다.

 

전역변수 선언하는 부분부터 상당히 간결해졌습니다.

 

bs1, rs1이 슬라임이자 라벨이므로 imgLbl, imgLbl2는 필요가 없습니다.

 

그리고 bsImg, rsImg도 없이 구현해보도록 하겠습니다.

 

bs1, rs1, h는 선언만 해놓고 할당은 아래쪽에서 하겠습니다.

 

 

 

프레임을 생성하기 전에 인간 객체를 생성하여 h 변수에 할당을 해둡니다.

 

 

 

오늘의 핵심코드 되겠습니다.

슬라임 객체를 생성하여 bs1과 rs1에 할당했는데요, 그러고나니 라벨처럼 사용할 수가 있습니다^^

아이콘도 설정하고, 위치도 설정하고, 정렬도 설정하고 말이죠^^

 

 

 

버튼객체가 슬라임객체보다 일찍 생성되면 91, 92행에서 에러가 나기 때문에 나중에 생성시켜 주었습니다.

 

 

 

회피동작을 구현하는 로직도 상당히 간결해졌습니다.

 

예전에는 s가 bs1인지 아닌지 판단해서 그에 맞는 그림을 움직여줘야 했지만 이제 그냥 s 자체를 움직여주면 됩니다^^

 

그런데 지금 코드를 실행하면 휴먼 클래스에서 에러가 납니다.

 

다음 시간에는 휴먼 클래스도 수정하고 슬라임이 죽으면 흑백으로 바뀌는 로직도 구현해보겠습니다.

 

감사합니다.

 

 

study01.txt
0.00MB

+ Recent posts