디시인사이드 갤러리

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

갤러리 본문 영역

[일반] [연재] junggallsoup - 8.맵의 객체화, 지형

겜스갓흥엔진갤로그로 이동합니다. 2019.07.02 15:52:34
조회 4180 추천 33 댓글 32
														


viewimage.php?id=2cb2d521e4df3d&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d544541156e5a67d6b8257d576f7a6acd6ae712a1d0937a76656ad4027ff3aceceec






1. 지형만들기 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6611335&t

2. 링크 움직이기 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6622888

3. 참피의 행동패턴 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6638982

4. 샌즈 오류, 그래픽의 질 상향 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6650423

5. 공격, 통피분신술 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6662892

6. 시체,이지,"큰사람" https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6696778

7. 세계의 확장 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=7876684&exception_mode=recommend&page=1






viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f7fa837a335b288792e6c273d




저번시간... 핫산은 2중 그리드로 맵 정보를 맵핑해 저장하려다가 대가리가 깨져버리고 말았다...

대가리를 싸매고 히오스나 돌린지 어연 2주째...

핫산의 대가리를 번뜩이며 스쳐가는 생각이 있었으니 그것이 바로 객체다.

생각해보니까 맵 자체를 객체로 만들어서 그리드에는 객체 id만 넣어서 관리하면 되는거 아님??





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665a5a2a34232038cd86ba9264





바로 실행에 옮긴다. 맵을 만들면서 obj_platform을 같이 만들고

그 오브젝트의 id를 따로 저장할 그리드에 저장한다음

플렛폼 객체에게 자신이 위치한 x y 정보를 알려준후

해당 오브젝트를 비활성화 해버렸다.


사실 객체 단위로 저장해서 관리하자는 생각은 계속해서 하고있었으나.

맵마다 하나의 객체를 지정해주면 그 객체들에 대한 최적화, 사용하지 않는 객체와 사용하는 객체의 구별을 어떻게 해야할지 몰라서

삽질하고 있었다. 근데 생각해보니까 인스턴트 비활성화 기능이 있었더라고

쓰는 객체만 활성화하고 나머지를 비활성화 해버리면 최적화도 해결되고 구별하는것도 해결된다.






viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665e0d7e62abe60cbebdc1db1e




시스템 컨트롤러는 지속적으로 플레이어가 위치한 맵의 위치와, 세이브 인스턴트 그리드에 저장된 객체 id의 위치가 일치하는지 검사한다.

그것에 변화가 생긴다면, 시스템 컨트롤러는 바뀐 맵에 대응하는 객체 id를 꺼내서 활성화 시킨다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e66575e79377b30a6b15e556457





맵의 위치에 변화가 생기는 순간은 플레이어가 포탈을 이용할 때이다.

포탈을 이용하면 지금까지 플레이어가 맵으로 사용하던 객체를 비활성화 해준다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f7ba56da330e5d879de20ba35



오브젝트 플렛폼에는 first_enter라는 논리 변수를 하나 선언해준다 //농담이다 겜스는 병신엔진이라 숫자 들어가는 변수는 전부 double로 받는다

이 변수는 플레이어가 맵에 처음 들어왔는지 체크해준다.

여기서 의문이 생길수 있다. "플레이어가 무언가를 놓치고와 이전맵으로 돌아가면 첫번째 입장이 아니니 액션이 실행되지 않는것이 아닌가?"

이곳에서 사용하는 first_enter는 플레이어의 입장 여부를 체크하는것이 아니다.


우리는 게임이 시작할때 미리 객체들을 모두 생성해버린다음 비활성화 함으로서 "생성됨" 이벤트를 사용할수 없게 되었다.

플레이어가 방에 입장했을때 몬스터 그리드는 변하지 않으므로 상관 없지만, 그 그리드에 저장된 정보를 가져와서 몬스터를 소환해주는 단계가 있어야한다.

그 단계는 일반적으로 객체의 스탭 이벤트에 할당된다. 여기서 잠시 스탭에 대해 간단히 설명하자면, 스탭 이벤트는 다른 언어의 '스레드'와 비슷한 이벤트로

1초에 룸스피드만큼 (보통은 30으로 설정되니 30번 만큼) 반복되는 이벤트다. 즉 우리가 첫번째 입장인지 체크해주지 않는다면 스탭이벤트는


내가 활성화 되어있니? and 몬스터 그리드가 존재하니?

그럼 그리드 정보 받아와서 몬스터 생성해!


내가 활성화 되어있니? and 몬스터 그리드가 존재하니?

그럼 그리드 정보 받아와서 몬스터 생성해!


내가 활성화 되어있니? and 몬스터 그리드가 존재하니?

그럼 그리드 정보 받아와서 몬스터 생성해!


내가 활성화 되어있니? and 몬스터 그리드가 존재하니?

그럼 그리드 정보 받아와서 몬스터 생성해!


.

.

.


이런식으로 여러번 동작해버린다.

뭔가 장황하게 설명하긴 했지만 대충 저 변수는 스탭이벤트의 중복 실행을 막기위한 변수다





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e660d5b2e654c06fc3f44ac7f41




만약 우리가 처음 입장했다면

몬스터를 만들어준다.

이제 처음 입장하지 않았음





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f7bad3cf136b7da7727ef7fb8




몬스터의 위치를 유심히 지켜보자.

정보가 성공적으로 저장되었다!





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665b0a7e6707d4ae6895e0ea61




이 단계에서 처음부터 몬스터가 아예 존재하지 않을 경우 배열 범위 오류가 나는걸 확인해 배열이 처음부터 [0],[1]공간을 가지고 시작하도록 하였다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665e5e7e323d1cf72eeb509cb8




이제 맵 정보가 성공적으로 저장되는것을 확인했으니 이제는 지형을 만들 차례다.

먼저 항상 가운데에 위치하던 포탈을 랜덤한 위치에 생성되게 만드는 것 부터 손보았다.






viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f28f83da365b7dd2350bb2d0a




대충 이렇게,

모서리에 포탈이 생성된다면 2개의 포탈이 겹쳐버릴수 있는 문제가 있으므로 구석자리에는 포탈이 생성되지 아니한다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e66565b7a68f6c5add60e178406




포탈의 위치가 랜덤해졌으니 이제 플레이어가 지정된 좌표로만 이동해서는 안된다.

이전까지는 포탈을 이동한 후 플레이이어의 좌표 이동을 포탈 오브젝트가 담당하였지만

이제 포탈 오브젝트는 플레이어를 직접 이동시키는것이 아닌 플레이어가 어느 방향 포탈을 이용했는지에 대한 정보를 플레이어 오브젝트에 전해준다.




viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665f5b2c619c5d39126c35f944




플레이어 오브젝트는 포탈 오브젝트에게 전달받은 방향 정보를 토대로 자신의 위치를 재구성한다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f7bad3dad62e4d9738a5d59de




좋다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f2eaf3ba561e5d423a5238123




이번엔 지형을 만든다. 지형 테스트를 위해 일단 기본적으로 공간이 모두 산으로 리전 되도록 설정하였다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e660a5b2f629b860c2abf3baa91




벌써 존나 옛날이 되어버린 예전 연재에 씨부린 바로는 일단 하트비스트좌의 코드를 사용해 대충 지형을 만든뒤

셀룰러 오토마타 보정을 통하여 지형을 만든다고 했었다.

하지만 그런식으로 작업하면 공간과 공간의 유기적인 연결을 보장해주지 못하기 때문에 일단 주석처리 해놨었다.

그 주석 처리를 풀기위해 공간과 공간사이의 연결을 보장(물리) 해주는 로드메이커 오브젝트를 하나 만든다.

로드메이커는 포탈의 x,y좌표에 소환된후, 스테이지의 중심부 cx,cy와의 길을 만들어 준다.






viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f7dfe6ba13be38a7952fc5380




자기 위치가 중앙보다 작으면 자기 위치를 한칸 키우고

자기 위치가 중앙보다 크면 자기 위치를 한칸 내린다.

최종적으로 자기 위치가 중앙과 똑같아지면 무한 루프를 break로 빠져나온다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e665c092a63fc78192c2fe09814




포탈은 생성될때, 연결을 보장해줄 로드메이커를 자기 위치에 생성한다.






viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f78ad39a665e28d26afceb652




성 공!




viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a45ca721baa6cddd4347559dfd84e660d0e20682dfb1f5e05ed3031




이제 통한의 주석처리를 풀어준다.





viewimage.php?id=2ab2d727e9de07a561b3d9bb0f&no=24b0d769e1d32ca73fee8efa11d02831027538f7794a651c79560464d54454178eb0fcd5b3b2da83bec9cdf30a0396265ee47ce97aef740f2cff3ea53ab8db26e0eb5dbe





생성된 지형.


다음시간엔 아이템으로 찾아올수 있으면 좋겠다


자동등록방지

추천 비추천

33

고정닉 16

2

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2863 설문 시세차익 부러워 부동산 보는 눈 배우고 싶은 스타는? 운영자 24/05/27 - -
2862 AD 희귀 정령 획득 기회! <아스달 연대기> 출석 이벤트 운영자 24/05/23 - -
25963616 공지 2024년 볼만한 게임쇼케이스 및 시상식 [63] 실 성갤로그로 이동합니다. 24.04.14 30379 48
26259123 일반 아니 진짜 발게이 쉴드는 신기하긴함.... [37] ㅇㅇ(121.164) 12:49 632 16
26259041 일반 쓰시마 갤러리 개념글.jpg [39] 감겟갤로그로 이동합니다. 12:35 2621 42
26258229 일반 던파 듀얼 근황...gif [120] ㅇㅇ갤로그로 이동합니다. 09:39 8207 57
26258103 일반 푸바오 근황......jpg [47] ㅇㅇ갤로그로 이동합니다. 08:58 8341 55
26256871 연재 플레이엑스포 2024 후기 2편 (끗) [74] 실 성갤로그로 이동합니다. 00:32 4531 48
26256445 일반 명조 pc 램 누수 해결법..jpg [54] ㅇㅇ갤로그로 이동합니다. 05.27 5297 42
26255753 연재 플레이엑스포 2024 후기 1편 [93] 실 성갤로그로 이동합니다. 05.27 7171 62
26254873 일반 썩을놈의.풀피새끼들 ㅋㅋ [111] ㅇㅇ(175.198) 05.27 15487 108
26253516 일반 메이플 어느 소녀 NPC의 성장 과정... jpg [94] 케넨천재갤로그로 이동합니다. 05.27 15156 64
26252722 연재 중국을 사랑하는 중국게임 갤러리 -1 [10] 베로로갤로그로 이동합니다. 05.27 1854 20
26251605 연재 퍼스트 버서커 카잔 2차 FGT 후기 만화2 [196] 닭곰탕갤로그로 이동합니다. 05.27 11417 123
26250673 연재 모로윈드 메인 연재 -3- [40] Fnenamgalsipsclar갤로그로 이동합니다. 05.26 3923 36
26249420 일반 개씹좆망한 더 파이널즈 근황..jpg [231] ㅇㅇ갤로그로 이동합니다. 05.26 21350 73
26249010 일반 무료로 닌텐도 얻는 법......jpg [131] ㅇㅇ갤로그로 이동합니다. 05.26 21043 98
26248419 일반 플레이엑스포 재 밋 다 !!! [137] 실 성갤로그로 이동합니다. 05.26 15617 111
26247885 일반 속보)지프 바넷曰, 나는 쌍근 망했어요. [85] 토드_하워드갤로그로 이동합니다. 05.26 13787 99
26247632 일반 요즘 모바일 게임 특징ㅋㅋㅋㅋ.jpg [226] ㅇㅇ갤로그로 이동합니다. 05.26 20661 192
26247477 일반 요즘 신용카드 만들면 주는거… [77] ㅇㅇ갤로그로 이동합니다. 05.26 17897 47
26247269 일반 플엑 레트로 장터왔음 [65] 실 성갤로그로 이동합니다. 05.26 10840 54
26247090 일반 "어이! 코즈워스! 농담 하나 해줘." [83] ㅇㅇ갤로그로 이동합니다. 05.26 14946 86
26246966 일반 야겜 번역 레전드....jpg [98] ㅇㅇ갤로그로 이동합니다. 05.26 18805 95
26246656 일반 아니 시발ㅋㅋㅋㅋㅋ ㄹㅇ 대조선 소짱깨네 [104] ㅇㅇ갤로그로 이동합니다. 05.26 16395 104
26246088 일반 게임업계가 썩지 않는방법.. [232] ㅇㅇ갤로그로 이동합니다. 05.26 18415 93
26244592 연재 모로윈드 메인 연재 -2- [21] Fnenamgalsipsclar갤로그로 이동합니다. 05.25 943 22
26244389 연재 "중붕이 갑자기 고기 40kg이 생겼는데 어떡함?" [57] metroidvania갤로그로 이동합니다. 05.25 18523 71
26244127 뉴스 [이구동성] 시프트업, 펄어비스 제끼고 엔씨 밑! [108] 게임메카갤로그로 이동합니다. 05.25 7432 42
26243680 연재 모로윈드 메인 연재 -1- [63] Fnenamgalsipsclar갤로그로 이동합니다. 05.25 4216 40
26243151 일반 전 스쿠에니 고위 관계자: 파판 ip 사실상 망했다 [339] ㅇㅇ(121.157) 05.25 14945 61
26242989 일반 중붕이의 게임그림 [77] ㅇㅇ(14.4)갤로그로 이동합니다. 05.25 11805 60
26242976 일반 제목에 이끌려 간 기사에는 [137] 하버갤로그로 이동합니다. 05.25 14294 91
26242810 일반 “스텔라블레이드, 일본에서 드도이 피지컬 판매량을 제쳐“ [122] ㅇㅇ갤로그로 이동합니다. 05.25 13620 60
26242774 일반 스파 존나 노골적이네 [111] 노서버갤로그로 이동합니다. 05.25 18769 95
26241912 연재 바로 어제 일어난 카스2 스킨 대 공황 사건 [34] ㅇㅇ갤로그로 이동합니다. 05.25 7832 45
26241838 일반 엔씨와 성난 똥꼬들.. [20] ProfessionalSkydiver갤로그로 이동합니다. 05.25 7986 28
26240920 일반 다음달에 오모리 만화 연재하나봄 [102] ㅇㅇ갤로그로 이동합니다. 05.25 11282 42
26237468 일반 게이밍 일본여행기 2탄!!!.JPg [116] 무능한나나갤로그로 이동합니다. 05.24 12588 71
26236687 연재 퍼스트 버서커 카잔 2차 FGT 후기 만화1 [312] 닭곰탕갤로그로 이동합니다. 05.24 15964 201
26235971 일반 속보) 스텔라 검열전 복장 추가됨 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [172] 방순갤로그로 이동합니다. 05.24 22618 125
26234939 일반 중붕.. 명조하다 빡종했다.. [250] ㅇㅇ(125.242) 05.24 21993 89
26234824 일반 스타레일 이번에는 아케인 표절 ㅋㅋㅋㅋㅋㅋ [169] ㅇㅇ갤로그로 이동합니다. 05.24 19696 59
26234784 일반 밸브 신작 데드락 게임 플레이 유출...GIF [252] ㅇㅇ(222.98) 05.24 19102 45
26234401 일반 명조 리뷰보는데 좀 웃긴거 많음 [142] 유부갤로그로 이동합니다. 05.24 18636 129
26233217 일반 2B 그려옴 [94] 한숨갤로그로 이동합니다. 05.24 16179 98
26229940 뉴스 '페이커' 이상혁, 롤 초대 명예의 전당 헌액자 선정 [175] 게임메카갤로그로 이동합니다. 05.23 10661 58
26229792 뉴스 던파 모바일, 中 출시 당일 애플 매출 1위 등극 [12] 게임메카갤로그로 이동합니다. 05.23 2207 18
26229051 일반 어쌔신크리드 충격 근황...jpg [251] ㅇㅇ갤로그로 이동합니다. 05.23 25649 100
26229038 일반 명조 동반자살 레전드 ㅋㅋㅋㅋㅋㅋ [118] ㅇㅇ(1.217) 05.23 24530 117
26224440 일반 여고딩 시절 한주리.......manga [132] ㅇㅇ갤로그로 이동합니다. 05.22 30521 99
26223968 일반 "중갤이 가장 사랑하는 게임" [140] ㅇㅇ갤로그로 이동합니다. 05.22 21923 146
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2