일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- unity3D
- flash builder
- path
- 단축키
- Flash
- XML
- 게임
- 3d
- Mac
- ios
- 아이튠즈
- class
- file
- 경로
- 태그를 입력해 주세요.
- AIR
- texture
- AS3
- smartfoxserver
- sdk
- Build
- 배열
- Android
- Ane
- unity
- swf
- Game
- builder
- iphone
- 영어
- 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));