-
[Unity Engine] 유니티로 퍼즐드래곤 만들기 - part62014.08.05 PM 02:51
콤보 시스템을 만들어보자 모종의 이유로 아주 간결한 강좌가 될거 같다.
퍼즈도라를 실행시켜서 가만히 살펴보자 다음과같은 특징을 발견할 수있다.
콤보는 세개드롭이 그룹이 묶이는 순서와는 별 상관 없다.
밑에서 부터 차례대로 터진다.
드롭이 터지는 것과 이후 뒷구가 터지는 것과는 상관없다.
위와같은 관찰 결과로 드롭을 맞춘후 아래서부터 차례대로 검사하는 것을 알 수있다.
이것을 구현하기 위해 Element에 chain 이라는 요소를 도입했다.
listDestroy가 완성된 이후 해당하는 맴버들에 대하여
chain을 거는 것이다. 위 그림에서 두개의 드롭이 chain인건 잘못된 것이다.
(파괴될 요소들만 chain을 건다.)
일단 board에서 좌표로 Element들의 타입을 가져오는 함수를 선언하자
getElement도 있는데 왜 구지 따로 만드냐면 예외처리하기 간단하기 때문이다.
이제 이 함수를 써서 SetupChain 이라는 Element의 메서드를 선언하자
음... 캐스팅 때문인지 뭔가 굉장히 어수선해 보인다.
약간 C#스럽게 바꿔보자
Element에 자신의 위치에서 오른쪽 왼쪽 위 아래의 좌표를 리턴하는
get함수를 만들고 다음과 같이 바꾸었다.
좀더 간결하다.
이제 다음으로 체인으로 이어진 엘리먼트들을 동시에 없애면 된다.
다음과 같은 코드에 따라서 할 것이다.
foreach(listDestroy에서)
comboFlag가 false이면
체인으로 이어진 모든 드롭을 제거 후 comboflag를 true로
뭔가 자세하게 적었었는데 음 역시 모종의 이유로 간결해 졌다.
맨붕...
시연영상은 다음과 같다.
지금까지 만들어진 버젼에대한 소스는
https://github.com/geniikw/copy-of-puzzleD/
여기서 Clone할 수 있다. 집에서 받아보면 좀 오류가 있긴한데
조금씩만 고치면 동작하는 것을 확인했다.
지금까지 퍼즈도라를 모작하면서 진행해 왔다. 이제는 퍼즈도라의 RPG 스러운 부분보다는
기존에 있는 메인시스템을 수정하면서 독자적인 퍼즐게임이구나 라는 것을 알 수있도록
만들 예정이다.
앞으로 할 예정은
파티클추가,
문자열테이블 적용,
커스텀시스템,
사운드,
크래딧,
메인화면작업,
옵션화면(NGUI, 체크박스, 등등),
오프닝,
admob,
playstore 빌링 시스템
그리고 이제부터 마감시간을 정할까 합니다.
매일 1시 5시 9시에 강좌가 올라갈 예정이며
총 3일에 걸쳐 위의 내용들을 다룹니다.
*물론 작업하다가 막히면 그만큼 늦어집니다.
댓글 : 0 개
user error : Error. B.