메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

흔히 구글에서 찾아보면 다음과 같은 Clipping Layer 소스를 찾을 수 있다.

 CCEGLView::sharedOpenGLView()->setScissorInPoints(    // scissorRect is the rectangle you want to show.
        clippingRegion.origin.x + getPosition().x, clippingRegion.origin.y + getPosition().y,
        clippingRegion.size.width, clippingRegion.size.height);

중요한 것은 저 setScissorInPoints에서 받아들이는 영역이 '절대 좌표'라는 것이다.
물론 그렇기에 getPosition().x을 추가해서 해당 Layer가 이동했을 때 적절하게 클리핑하려고 했고
보통은 여기서 크게 문제를 못 느낀다.

하지만!!

만약 클리핑 될 Layer가 최상단이 아닌 누군가의 자식으로 지역 좌표를 쓰고 있다면?
예를 들어 (0,100)에 있는 레이어에서 그 레이어의 (0,100)에 새로운 레이어를 생성하고 저 클리핑을 적용하면...
100만큼 잘려 버린다. 부모의 좌표가 반영되지 않으므로...

그리므로 getPosition() 부분을 월드 좌표로 바꿔줘야
자식 노드로 레이어를 생성해도 문제 없이 클리핑을 할 수 있다.

CCPoint world_pos = convertToWorldSpace(CCPointZero);

CCEGLView::sharedOpenGLView()->setScissorInPoints(    // scissorRect is the rectangle you want to show.
        clippingRegion.origin.x + world_pos.x, clippingRegion.origin.y + world_pos.y,
        clippingRegion.size.width, clippingRegion.size.height);

태그 :
조회 수 :
670
등록일 :
2013.09.10
19:23:53 (*.75.88.173)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=703178
List of Articles
번호 제목 글쓴이 날짜 조회 수
» cocos2d-x Clipping Layer 수정 똥똥배 2013-09-10 670
124 cocos2d-x 게임을 iOS에 이식할 때 생기는 문제들 똥똥배 2013-08-26 543
123 cocos2d-x에서 schedule_selector 정의 변화 [1] 똥똥배 2013-08-19 521
122 QT 프로젝트 배포에 필요한 거 똥똥배 2013-07-11 601
121 cocos2d-x 외부파일을 이용한 한글 처리 [1] 똥똥배 2013-07-08 1938
120 중력 처리할때 캐릭터가 낍니다. [2] ㅁㄴㅇㄹ 2012-02-12 1395
119 cocos2d의 가비지 컬렉터 똥똥배 2012-02-07 1962
118 TinyXML의 한계 [2] 똥똥배 2011-12-11 3753
117 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 2011-10-27 10656
116 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 2011-05-25 3447
115 2중 for문을 돌릴 때 [3] 똥똥배 2011-04-06 2539
114 DirectX 창모드에서 화면 지워지는 문제 [7] file 똥똥배 2010-12-12 2790
113 조금씩 게임 소스가 완성 되어 가는데요. [2] 짜스터 2010-11-16 2188
112 데이터 축소에 대하여 [2] 짜스터 2010-10-13 2430
111 SRPG을 구현하게 되면 ... [3] 짜스터 2010-10-05 2708
110 흥크립트 질문. 글자에 관해서 [1] 에리 2009-03-21 3430
109 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 2009-01-15 5550
108 C++ 질문 2 [3] A.미스릴 2008-12-22 3565
107 C++ 질문 [1] A.미스릴 2008-12-21 3818
106 또질문 [2] 쿠로쇼우 2008-09-29 2854