일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Android
- 배열
- 태그를 입력해 주세요.
- flash builder
- Game
- 아이튠즈
- 게임
- swf
- 단축키
- iphone
- unity
- sdk
- 3d
- ios
- Flash
- 영어
- smartfoxserver
- class
- Ane
- file
- Mac
- path
- Build
- AIR
- XML
- unity3D
- 경로
- AS3
- texture
- builder
- Today
- Total
상상 너머 그 무언가...
sprite에 mask 설정하기 ( CCClippingNode ) 본문
//마스크를 씌우고자 하는 객체 생성
m_BonusCloud = CCSprite::create("bonus_game_cloud.png"));
// 마스크 영역으로 사용할 객체 생성
CCSprite* cloudMask = CCSprite::create("bonus_game_bg.png"));
cloudMask->setPosition( m_BonusCloud->getPosition());
// 마스크 처리를 해주는 객체 생성
CCClippingNode* maskClipper = CCClippingNode::create();
maskClipper->setInverted(false); // true면 마스크영역만 객체가 안보이게, false면 마스크영역에만 객체가 보이게
maskClipper->setAlphaThreshold(0);
maskClipper->addChild( m_BonusCloud ); // 마스크를 적용할 객체 설정
maskClipper->setStencil( node ); // 마스크처리 객체에 마스크모양에 사용할 객체 설정
this->addChild( maskClipper ); // 마스크처리 객체를 화면에 표시
m_BonusCloud->setPositionX(405); // 마스크 대상 객체와 마스크 객체 좌표를 적절히 설정
m_BonusCloud->setPositionY(230);
cloudMask->setPosition( m_BonusCloud->getPosition());
setStencil에 사용할 객체에 drawPolygon으로 폴리곤이 그려진 CCDrawNode를 사용해도 된다.
cocos2d::CCSize size;
CCDrawNode* shape = CCDrawNode::create();
CCPoint pts[4];
pts[0] = ccp( -size.width/2, size.height/2 );
pts[1] = ccp( size.width/2, size.height/2 );
pts[2] = ccp( size.width/2, -size.height/2 );
pts[3] = ccp( -size.width/2, -size.height/2 );
shape->drawPolygon(pts, 4, ccc4f(1, 1, 1, 1), 0, ccc4f(1, 0, 0, 1));