본문 바로가기
스크래치/스크래치 디펜스

스크래치로 팔라독 같은 게임 만들기- 6. 공격시스템

by 할거없네 2017. 11. 6.

안녕하세요. 승승이입니다.

이제 공격시스템을 만들어야 하는데요,

어떻게 만들어야 할지 정리부터 해보겠습니다.

1. 적이 공격범위안에 들어감 (공격모드)

2. 공격 개체 리스트를 생성(x위치, 공격력, 공격범위)

3. @딜레이를 추가함

4. @딜레이가 0이될때까지 -1을 함, @딜레이0이되어야 공격가능

그러면 피격시스템도 같이 만들어야 하는데요

1. 공격개체 리스트에서 자신의 위치와 범위가 얼마나 되는지 확인

2. 자신이 해당 범위 안에 들어오면 데미지 받음

3. 데미지를 받으면 해당 리스트를 삭제함

버그가 있을 가능성이 있지만 이정도로 정리해볼까 합니다.


6.1 공격시스템- 적의 공격리스트 생성

공격을 하면 조건(@공격함=1, @공격딜레이=0)이 부합하면 공격하기 위한 리스트에 추가합니다.

공격딜레이가 0이 아니면 -1만큼 바꿉니다.



새로 생성된 변수들의 초기값을 추가 설정합니다.


그리고 공격한 개체는 일정 시간 후에 알아서 사라줘야 하는데요,


이것은 원본에서 무한반복을 넣고,

공격수명설정에서 모든 리스트를 확인해서 수명을 1틱당 -1깍아서

수명이 0이된 공격리스트를 삭제하는 방식을 사용하였습니다.


6.2 공격시스템- 플레이어 피격조건

자신의 위치와 공격리스트의 위치와 비교하여 범위안에 들어가면

데미지만큼 자신의 hp가 감소하도록 합니다.


피격이 되면 해당 공격은 삭제하도록 합니다.

그러면 한번 공격에 한대만 맞도록 설정이 됩니다.

나중에 스플래시 데미지 등의 구현을 할때는 다른 방법을 써야 하겠지만 나중에 생각해 보기로 합니다.


63 공격시스템- 플레이어 사망조건

사망은 단순히 hp1보다 작을 때 삭제하기로 합니다.

삭제하기 전에 데이터는 이미 남아 있어서 적이 유저를 허공에 공격할 것으로 예상되니,

x의 위치를 저 멀리 공격할 수 없는 곳으로 보내버리는 것으로 하기로 합니다.

다른 무언가 이벤트가 발생시키는건 나중에 생각하기로 합니다.

일단 몬스터가 유저를 잘 공격하는지 확인해봐야겠네요.


만든 것들을 이제 루프안에 넣으시면 됩니다.

공격하기, 피격조건, 사망조건을 만들었습니다.




댓글