lklslel2017.03.07 12:59

그러한 강의는 그림을 회전시키는 방법에 대한 것일 뿐이지

실제로 충돌처리를 할 수 있다고 말하기에는 문제가 있습니다.
 

 


rotate_door_point_collision.png

rotate_door_point_collis-02.png

 

rotate_door_point_collis-03.png

rotate_door_point_collis-04.png

 

 

이상적으로는 위의 그림과 같이 각 프레임마다

 

충돌을 체크해줘야할 캐릭터의 4개의 점과

 

회전문의 날개 갯수에 맞게 회전축과 문 끝의

 

점 간의 관계를 따져주어야 하지만 그렇게 하게 되면

 

원하지 않던 렉이 발생할 수 있습니다.

 

 

비교적 단순한 방법은 전체회전각인 360도에

 

대하여 회전문의 날개 갯수에 맞게 회전하는

 

스프라이트의 프레임번호에 따라서 판정을 줄 수 있겠습니다.

 

 

캐릭터의 이동시에도 이동 에니메이션 프레임이 있고

 

회전하는 물체의 회전 에니메이션 프레임이 있으니

 

타일에서 타일로 이동할 때에 각 프레임간의 관계를 통해서

 

충돌했는지 그렇지 않고 무사히 문을 지나갔는지에 대한

 

판정을 하실 수 있습니다.

 

 

회전문의 1번째 프레임이 오른쪽 수평선,

 

회전문의 날개는 4개인 스프라이트이고,

 

회전 방향은 시계 반대방향(왼쪽)이며

 

캐릭터의 이동 프레임이 4프레임,

 

날개가 네 개인 회전문의 16프레임이라고 가정 해볼 때

 

가고자 하는 방향과 충돌에 판정식은

 

다음과 유사할 수 있습니다.

 

 

※회전문의 스프라이트 프레임이

1, 5, 9, 13번째일때 수직 / 수평선이 됩니다.

아래의 판정식은 그저 예일뿐 스프라이트의

프레임에 맞게 조절하시기 바랍니다.

회전문의 날개 갯수에 따라서 판정 프레임이

달라진다는 점 참고하시기 바랍니다.

 

 

1. 회전문의 프레임이 2 / 6 / 10 / 14번째일 때에

회전문의 바로 오른쪽에서 왼쪽으로

통과하기 시작하면 충돌없이 통과 가능

 

2. 회전문의 프레임이 2 / 6 / 10 / 14번째일 때에

회전문의 바로 아래쪽에서 위쪽으로

통과하기 시작하면 충돌없이 통과 가능

 

3. 회전문의 프레임이 2 / 6 / 10 / 14번째일 때에

회전문의 바로 왼쪽에서 오른쪽으로

통과하기 시작하면 충돌없이 통과 가능

 

4. 회전문의 프레임이 2 / 6 / 10 / 14번째일 때에

회전문의 바로 위쪽에서 아래쪽으로

통과하기 시작하면 충돌없이 통과 가능

 

5. 회전문의 프레임이 2 / 6 / 10 / 14번째가 아닐 경우

이전에 있던 타일로 강제적으로 물러섬

 

 

※ 캐릭터의 이동 스프라이트 프레임 수가

 

회전문의 회전 프레임 수의 배수가 되도록

 

하시는 것이 판정식을 세우실 때 편합니다.

 

배수가 아닐 경우에는 각 프레임마다

 

숫자를 증가시켜 저장하는 정수형변수와

 

mod(나머지)연산이 필요하게 됩니다.

 

 

 

카운터변수 %(mod) 캐릭터 이동 스프라이트 프레임 수 + (알맞은 화면 연출 프레임)

 

일 때에 각 방향으로 통과하기 시작하면 통과 가능

 

 

 

로직적으로는 대략적으로 설명한 바와

 

같지만 실제 적용해보시면 빼야할 부분과

 

더해야 할 부분이 생기기 마련입니다.

 

부디 도움이 되었으면 좋겠다고 생각합니다.

파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)