5일 시행
모든 토공사는 전날에 완료되었습니다.
그래서 5일째에 Timer와 TimerTask를 이용하여 지연 시간 후에 적 소환법을 호출하면,
게임을 끝낼 수 있었습니다.
1. 적 소환 흐름 구현
// 적군 소환 흐름
public void createEnemy() {
// 1번째 적군 소환
unit2ArrayLeftMove();
Timer timer1 = new Timer();
long delay1 = 3000L;
// 2번째 적군 소환
TimerTask task1 = new TimerTask() {
@Override
public void run() {
unit3OneMove();
}
};
timer1.schedule(task1, delay1);
// 3번째 적군 소환
long delay2 = 6000L;
TimerTask task2 = new TimerTask() {
@Override
public void run() {
unit4ArrayRightMove();
}
};
timer1.schedule(task2, delay2);
적을 소환하는 별도의 메서드를 정의하고 별도의 createEnemy() 메서드를 만듭니다.
여기서 흐름은 지연 시간 후에 개별적으로 호출되어 구현됩니다.
적들은 1분 동안 총 18번 소환되며, 모든 적을 쓰러뜨렸을 때 최고 점수는 24300입니다.
2. 게임 오버 화면 추가
mContext.gameOver();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
System.exit(0);
}
};
long delay = 2000L;
timer.schedule(task, delay);
플레이어가 3개의 생명을 모두 잃으면 GameOver 이미지가 표시되고 프레임이 2초 후에 종료됩니다.
내가 처음에 생각한 것은 다시 시작할 수 있는 새로운 로딩 화면이 나타나고 Enter 키를 누르면 게임이 다시 시작된다는 것이었습니다.
이렇게 하려면 게임을 다시 시작할 때마다 개체를 청소하시겠습니까? 이렇게 하지 않으면 수많은 오류가 발생합니다.
저희 레벨에서는 이 방법이 아직 어렵다고 해서 재시작 기능을 버리고 게임을 종료하는 방법으로 변경했습니다.
3. 게임 삭제 화면 추가
플레이어가 지정된 분이 끝날 때까지 아직 살아 있으면 gameClear 이미지가 표시됩니다.
이렇게 해서 5일차에 게임을 완성하고 6일차에 PPT를 만들어 발표했습니다.
프레젠테이션 후 피드백
1. EnemyUnits의 이름을 1-4로 지정하는 대신 개별적으로 이름을 지정하십시오.
유닛을 설계할 때부터 이 부분에 신경을 많이 썼는데 이름을 잊어버려서 숫자라고 불렀습니다.
2. 움직이는 물체와 적의 물체를 분리
Enemy는 위, 아래, 오른쪽, 왼쪽 방법을 사용할 때 int speed라는 매개변수를 얻어서 사용합니다.
나머지(플레이어 등)는 매개변수 없이 사용하기 때문에 사용하기 전에는 모두 표준 메서드라고 했습니다.
(메서드 과부하)
Enemy의 무버블을 직접 만드는 것이 그렇게 하는 것보다 낫다고 해서 그 부분을 수정했습니다.
3. 배경에 물체나 총알의 잔상이 남는 버그
그는 부동 배경을 구현할 때 repaint() 메서드를 자주 사용했기 때문에 이것이 더 악화되었다고 말했습니다.
배경이 흐르지 않게 하시면 에러가 뜨지 않습니다.
그 부분은 그냥 무시하기로 했습니다.
해결책으로 배경을 GIF로 가져오는 방법이 있다고 합니다.
다만, 움짤의 크기가 너무 커서 이렇게 하기가 힘드네요…
이번 프로젝트에서 가장 아쉬웠던 점입니다.
+ 기타 아쉬운 점
1) git branch 기능을 거의 사용하지 않았습니다.
(아직은 다들 Git을 잘 사용하지 못합니다.
)
→ 코드 충돌이 발생하는 경우가 있었습니다.
2) 프로젝트 일정이 제대로 계획되지 않고 수시로 작업이 완료된 것 같습니다.
→ 다음에는 좀 더 알찬 계획을 세워서 진행하고 싶어요!
3) 각자가 책임지는 코드 조각이 아니면 다른 코드에 대해서는 모른다.
→ 4일차에 다른 클래스를 ArrayList 메서드와 호환되도록 수정하는 중이었습니다.
나는 다른 코드를 여러 번 분석하여 대부분을 알고 있습니다.
다른 팀원들은 그 일에 참여하지 않는 한 많이 알지 못하는 것 같았습니다.
이러한 부분을 개선할 수 있는 방법을 고민해야 합니다.
(팀원 전원이 코드를 테스트해보셨나요..?)
그래도 첫 작품치고는 꽤 잘한 것 같다.
자는 시간과 프로젝트에 몰두하는 시간을 쪼개서 쪼개서 몸이 좀 힘들었지만 그 과정이 정말 즐거웠습니다.
학원에서 약 2개월 후, 이 길이 정말 나에게 맞을까? 나중에 후회하지 않겠습니까?
그런 고민이 많았는데 이번 프로젝트를 하면서 개발자로서의 길을 잘 선택할 수 있겠다는 생각이 들었다.
동영상 재생
게임 끝
게임 삭제