디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

개발) 타일 중복 검사 없는(사실 있는) 시야처리 설명글앱에서 작성

ㅇㅇ(223.62) 2018.06.27 23:29:09
조회 273 추천 4 댓글 15
														

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73cef83fa11d02831a8a78790708c2166b82f7de95f9f30a99c8d79451e190fede822545679509b712845e7b77932168d58a0bc43f29b

시야처리 마스크 초기화 함수

설명
161 : iDistance는 캐릭터 기준으로 얼마만큼 볼지 정하는 변수

162 : FovMask는 시야처리에 사용할 2차원 배열임. 멤버 변수로 iDistance와 fAngle을 가지고 있음

165 ~ 167 : 시야 거리 * 2 만큼 배열을 초기화 해야하기 때문에 반복문 작성

168 ~ 169 : iFovDistance 만큼 좌표를 밀어줘야함. 예를 들어 iFovDistance가 10이라면 tx, ty는 -10 ~ 10의 값을 가지게 ?

172 : iDistance에 중앙 타일과 해당 좌표의 거리를 집어넣고 소수점 버림.

173 : fAngle에 중앙 타일과 해당 좌표의 각도를 넣음.

atan2 결과를 라디안에서 디그리로 바꾸고 180을 더해서 360의 나머지가 나오게 하면 0~359 사이의 숫자가 나옴


결과는 전역변수로 둬야함





viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73cef83fa11d02831a8a78790708c2166b82f7de95f9f30a99c8d79451e190fede822545679509b717c47e6b27b6d138e58a3bc43f29b

시야처리할 오브젝트 갱신 함수

48 ~ 49 : 중심 좌표로 초기화

50 : FovWall이라는 시야처리에 해당하는 벽 리스트를 담을 배열이나 리스트의 포인터로 초기화. 전역변수로 해도 상관 없음






viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73cef83fa11d02831a8a78790708c2166b82f7de95f9f30a99c8d79451e190fede822545679509b712f4fe2b9283e41dc58a2bc43f29b


97 : 시야의 기준으로 쓸 좌표를 매개변수로 받음

98 ~ 99 : 시야처리 마스크에서 가져오기 위한 상대 좌표를 구함.

101 ~ 111 : 메모리 침범 안하게 최대 최소값 강제 지정.

113 : 반환






viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73cef83fa11d02831a8a78790708c2166b82f7de95f9f30a99c8d79451e190fede822545679509b717d42e7b27c33118f58a5bc43f29b

시야처리를 하기 위한 벽 리스트에 해당 오브젝트를 넣는 함수

59 : 자신이 마스크 상에서 시야 범위 안에 있는지 조건 체크

60 : 그림자 쓸건지 체크

61 : fovWall에 자신이 포함 되는가.

62 ~ 67 : 작은 순으로 정렬

69 : 그림자에 포함하지 않으니 지울것.

72 : 마스크에 포함하지 않으니 지울것.








viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73cef83fa11d02831a8a78790708c2166b82f7de95f9f30a99c8d79451e190fede822545679509b712942e0b37a68418d58a4bc43f29b

그림자 세팅

78 ~ 79 : 시야 범위 밖에 있다면 가려진다.

82 : 위에서 삽입 정렬한 벽 리스트에서 벽을 하나씩 꺼내옴.

83 : 자신이 벽보다 멀다면

84 : 벽의 거리 만큼 그려야 하는 그림자의 각도를 좁힌다.

85 : 상대각도에 다음을 대입. (45 + (플레이어가 자신을 보는 각도 - 플레이어가 벽을 보는 각도))%360

45 더하는 이유는 각도에 따라 그림자가 잘려나가는 것을 방지 하기 위해서.

86~88 : 그림자를 그려야하는 각도 안에 상대각도가 있을 경우, 그림자를 그리고 반복문 종료.

위에서 정렬하는 순서대로 한다면 제일 가까운 벽부터 검사하니까 비슷한 각도의 더 멀리 있는 벽은 무조건 가려짐. 따라서 검사할 필요 없음.

90 ~ 92 : 안가려져서 밝게함. ( 그림자를 직접 그린다면 굳이 넣을 필요 없음. )





메인 루프

이건 엔진이나 로직마다 다른데 거의 다 오브젝트 배열 만들어서 반복문 돌리니까 이렇게 쓰면 ?

오브젝트 배열 사이즈 만큼 반복 :
오브젝트[n].Shadow()






끝.

엄밀히 따지자면 완벽하게 중복 없이 검사하는게 아니라 오브젝트마다 벽 검사를 중복체크하는데

최소화 하고 싶으면 따로 만들어야 함. 나는 안만들었음.

의문 사항 댓글로 받음

추천 비추천

4

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
AD 호요버스 신작 <젠레스 존 제로> 7월 4일 오픈! 운영자 24/06/05 - -
203534 카타클 뒤졌다 글쓴이갤로그로 이동합니다. 18.07.02 64 0
203533 로갤시트 저장용 [7] 김카뮈갤로그로 이동합니다. 18.07.02 173 0
203531 돌품잡품 신청 [14] TWITCHgusdn629갤로그로 이동합니다. 18.07.02 848 15
203530 퍼킹 오즈 ㅇㅇ(1.244) 18.07.02 43 0
203529 시발 놀스칼드로 1층에서 +2 화저 가죽갑옷먹어서 시작 좋은데? 이랬는데 [1] ㅁㄴㅇㄹ(49.165) 18.07.02 90 0
203528 똥겜이 로그라이크 붙이는 의도야 뻔하지 [1] 신세틱(175.201) 18.07.02 149 0
203526 coq 건슬링거 팔 여러개 달면 총도 한방에 여러방쏨? [1] 김카뮈갤로그로 이동합니다. 18.07.02 93 0
203525 coq 공략글 로갤 시트 참고하셈 [3] dd(112.166) 18.07.02 141 0
203524 우스타요vs우지안 뭐가 낳냐 [3] 문어(218.39) 18.07.02 118 0
203523 coq flaming,freezing 모드 설마 근접공격에만 적용됨? [3] 곰파미갤로그로 이동합니다. 18.07.02 77 0
203522 주문하신 이지브가 산성완드 들고 헤이물약 빨고 달려오는 짤 [1] dd(114.205) 18.07.02 128 0
203520 ㅋㅌㅋ)젤 램프 머냐 [1] ㄴㄴ(114.206) 18.07.02 115 0
203519 ㄱ자로 꺾이는 대각선 타일은 답이 읍네 [2] 비창갤로그로 이동합니다. 18.07.02 131 0
203518 coq 얼엑이던데 할만함? [6] te4갤로그로 이동합니다. 18.07.02 123 0
203517 그 이지브가 산성완드들고 헤이빠는 짤도있지 않았나 [5] harriot갤로그로 이동합니다. 18.07.02 125 0
203514 아 씨발 녹픽던 늒네 처음으로 여기까지 와봤는데 [12] ㅇㅇ(121.137) 18.07.02 221 0
203513 coq 모닥불 완전히 치워버릴 수는 없나? [1] 곰파미갤로그로 이동합니다. 18.07.02 70 0
203512 카타클] 유령은 머임 첨보네 ㅇㅇ(61.105) 18.07.02 102 0
203511 옛날에 그거 진짜 신박하다고 생각했었는데 [7] 홈에디션갤로그로 이동합니다. 18.07.02 209 0
203510 Lost labyrinth 갓겜임 [3] 스틸콜드갤로그로 이동합니다. 18.07.02 173 0
203508 시발 진균체같은 채굴기새끼 [1] ㅇㅇ(122.32) 18.07.02 116 0
203507 나만 아직도 웹죽 접속 안되는거냐 [1] 스피파갤로그로 이동합니다. 18.07.02 58 0
203506 왜 웹죽 세이브 안열리냐 [2] move(121.182) 18.07.02 117 0
203505 최강의 이지브 [17] ㅇㅇ(39.114) 18.07.02 1173 21
203502 카타클리즘 질문 2개 [4] 랍랍갤로그로 이동합니다. 18.07.02 243 0
203501 coq 길 잃으면 어떡함?? [4] 김카뮈갤로그로 이동합니다. 18.07.02 90 0
203500 현실에서 쓰면 개꿀인건 이계의 관문 아니냐 [3] harriot갤로그로 이동합니다. 18.07.02 181 0
203499 돌죽 페다스포자는 어케쓰는거야 도대체? [1] ㅇㅇ(117.123) 18.07.02 90 0
203498 쿼드겜 한글패치가 가능할까 [2] 곰파미갤로그로 이동합니다. 18.07.02 139 0
203497 일본죽 하던거만 마저 꺠고 넘어가야지 (117.123) 18.07.02 39 0
203496 로봉이들이 못 믿는 신 어린왕자4갤로그로 이동합니다. 18.07.02 84 0
203495 차라리 드라코 렙업마다 추가ac 삭제하고 [2] ㅇㅇ(117.123) 18.07.02 115 0
203494 고자그만큼 무난한 신은 없는듯 [1] 어린왕자4갤로그로 이동합니다. 18.07.02 92 0
203493 돌품중품 신청 [1] ㅇㅇㅇㅇ(27.1) 18.07.02 118 0
203492 선생님콘 돌죽버전 가져옴 [24] ㅇㅇ갤로그로 이동합니다. 18.07.02 8306 16
203491 용폼 쓸때 입고있는 거죽에 따라 변신하면 좋겠다 [5] ㅇㅇㅇㅇ(27.1) 18.07.02 122 0
203490 [돌죽]아직 완전 복구가 안됫나보네 [2] ddd(222.234) 18.07.02 206 0
203489 다크갓 이새끼 돌죽하러갔나 [1] werr(222.102) 18.07.02 149 0
203488 속보)여러분 웹죽이 살아났습니다 어서 일본죽을 버리고 우리의 고향으로.. [1] dlRl(125.143) 18.07.02 171 0
203487 루는 자기몸에서 짤라야되고 아쉔은 자기몸에 이상한거 붙여야됨 [2] zx루신도xz갤로그로 이동합니다. 18.07.02 183 0
203486 전달 성공 브-래기갤로그로 이동합니다. 18.07.02 43 0
203485 근데 돌죽 포자 언제부터 사라졋음? [5] 6(222.233) 18.07.02 107 0
203484 ㅋㅌㅋ 알비노 보완 가능한 바이오닉 없음? [1] ㅇㅇ(39.114) 18.07.02 126 0
203482 루 공략 [1] zx루신도xz갤로그로 이동합니다. 18.07.02 139 0
203481 에롤차 무슨 스킬 쓰지? [3] xom(68.99) 18.07.02 125 2
203480 던전떨어진 로붕이 겨우겨우 만신전가면 결국 아무것도 못믿고 나울듯 [5] zx루신도xz갤로그로 이동합니다. 18.07.02 162 0
203479 페다스 오클롭 움직일수만 있어도 믿을듯 [1] zx루신도xz갤로그로 이동합니다. 18.07.02 119 0
203478 현실 꿀마법은 골루브리아 통로지 [6] ㅇㅇ(117.123) 18.07.02 175 1
203477 ㅋㅌㅋ)개인적인 음식에대한 생각 [1] 6(222.233) 18.07.02 127 0
203476 로붕이가 인간중갑전사로 돌죽세상에 들어가면 [1] ㅇㅇㅇ(115.84) 18.07.02 96 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2