메뉴 건너뛰기

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

흔히 구글에서 찾아보면 다음과 같은 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
번호 제목 글쓴이 날짜sort 조회 수
45 Lua 소코반: 벽을 뚫고 나가지 않게 해보자! 노루발 2013-09-17 696
44 Lua 소코반: 상자를 만들고 옮기고 상자와 상자가 겹치거나 상자와 벽이 겹치지 않게 해 보자! 노루발 2013-09-17 677
43 Lua 소코반: 목표 지점을 만들고, 상자가 모두 옮겨지면 게임을 끝내자! 노루발 2013-09-17 754
42 이미지 그리는 방법 1편 노루발 2013-09-17 812
41 이미지 그리는 방법: 2편. 부제: 쿼드! 노루발 2013-09-17 821
40 게임의 기본 설정을 담당하는 love.conf 노루발 2013-09-17 763
39 Lua 소코반 EX: 그래픽 준비 노루발 2013-09-18 1084
38 Lua 소코반 EX: 포팅: 1 노루발 2013-09-18 856
37 Lua 소코반 EX: 포팅: 2 (키가 눌리면 이동하게 해 보자) 노루발 2013-09-18 832
36 Lua 소코반 EX: 포팅: 3 (머나먼 여행길 안녕 친구여) 노루발 2013-09-18 913
35 CCTextFieldTTF 0바이트 메모리 누수 버그 해결법 똥똥배 2014-01-13 692
34 Cocostudio의 ActionNode 메모리 누수 해결법(cocos2d-x 2.2.2) [2] 똥똥배 2014-03-09 776
33 cocos2d-x 2.2.2 UILabelBMFont 메모리 누수 해결법 [2] 똥똥배 2014-03-10 783
32 cocos2d-x 2.2.2 윈도우 환경 기본 메모리 누수 똥똥배 2014-03-10 640
31 cocos2d-x 2.2.2 문자열 출력 버그 [2] 똥똥배 2014-06-10 601
30 구글 인앱 구매 Soomla로 구현해본 후 팁 똥똥배 2014-09-20 577
29 Love2d 여러 플랫폼으로 빌드 자동화 노루발 2014-11-12 470
28 Love2d 안드로이드 빌드하기 노루발 2014-12-15 572
27 Love2d 안드로이드 게임 패키징하기 [3] 노루발 2014-12-15 546
26 [번역] gamedev레딧의 Getting Started 문서 번역 [5] priling 2014-12-26 1891