안녕하세요.
이번 시간에는 슬라임이 죽었을때를 코딩해보겠습니다.
어느 클래스에다가 코딩해야될까요? 스터디01 클래스?(앞으로는 메인 클래스라고 하겠습니다) 슬라임 클래스? 휴먼 클래스?
정답은 휴먼 클래스입니다. 슬라임을 공격하는 코드가 있기 때문이죠.
아래처럼 하면 되겠습니다.
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 | // Human.java package study; class Human { String name; int hp = 100; public Human(String n) { name = n; } public void attack(Slime s) { System.out.println("인간은 " + s.name + "를 공격했다"); s.hp = s.hp - 10; if (s.hp < 1) { System.out.println(s.name + "는 사망했다\n"); } else { System.out.println("현재 " + s.name + "의 체력은 " + s.hp + "이다\n"); } } } | cs |
슬라임의 체력을 깎는 코드 다음에 위치하는게 적절해보입니다.
체력이 1보다 작으면 사망했다고 출력하고 그렇지 않으면 현재 슬라임의 체력을 출력합니다.
자, 실행해봅시다.
사망했다...까지는 잘 되는데 어라라?! 죽은 슬라삐가 알렉스를 공격하는군요. 좀비모드?!
메인함수에 있는 s.attack(h); 가 실행돼서 나타나는 현상입니다.
이래서는 안되겠죠. 다음 시간에는 요 버그를 잡아보도록 하겠습니다. (다음 강의를 보시기 전에 스스로 해결하면 더 좋겠죠^^)
감사합니다.
'자바로 게임 만들기' 카테고리의 다른 글
[자바로 게임 만들기] 40. 슬라임 퇴치 게임 1탄 완성! (11) | 2019.02.13 |
---|---|
[자바로 게임 만들기] 39. 버그 잡기 (0) | 2019.02.12 |
[자바로 게임 만들기] 37. 빈 슬라임 변수를 이용한 추가적인 리팩토링 (0) | 2019.02.08 |
[자바로 게임 만들기] 36. 에러를 방지하자(null값과 빈값) 2 (0) | 2019.02.01 |
[자바로 게임 만들기] 35. 에러를 방지하자(null값과 빈값) (0) | 2019.01.29 |