CCParallaxNode¸¦ ÀÌ¿ëÇÏ¿© ¹è°æ À̹ÌÁö¸¦ ½ºÅ©·Ñ Çغ¸ÀÚ.
cocos2d-2.0-x-2.0.4/samples/TestCpp/Resources/Images¿¡¼ background.png¸¦ º¹»çÇÑ´Ù.
CCParallaxNode¸¦ »ý¼ºÇÏ¿© ½ºÇÁ¶óÀÌÆ® Ãß°¡½Ã(addChild)¿¡ parallaxRatio·Î ¼Óµµ¸¦ ÁöÁ¤ ÇÑ´Ù. CCParallaxNodeÀÇ ½ºÅ©·ÑÀº runActionÀ¸·Î Á¦¾îÇÑ´Ù.
1. Æз²·º½º³ëµå »ý¼º 2. ¹è°æ À̹ÌÁö ·Îµù 3. ¶Ç ´Ù¸¥ ¹è°æ À̹ÌÁö ·Îµù(¹öÆ° À̹ÌÁö¸¦ º®À¸·Î »ý°¢ÇÑ´Ù) 4. »çÀÌµå ½ºÅ©¸¦ ¾×¼Ç »ý¼º 5. ÆÓ·²·º½º¿¡ ¾×¼Ç Ãß°¡ 6. ·¹À̾ Æз²·º½º ³ëµå Ãß°¡
2°³ÀÇ ¹è°æ À̹ÌÁö°¡ ¼Óµµ°¡ ´Ù¸£°Ô(½ÃÂ÷¸¦ µÎ°í) ¿òÁ÷ÀÌ°í ÀÖ´Ù. ( ¹ÙÅÁÀÌ µÇ´Â ½£ À̹ÌÁö¿Í ¿©±â¼´Â ¹öÆ°À» ¹è°æ À̹ÌÁö2·Î »ç¿ë ÇÏ¿´´Ù.)
´Ü°èº°·Î ¾Ë¾Æ º¸ÀÚ.
1. Æз²·º½º³ëµå »ý¼º
¹è°æ À̹ÌÁö¸¦ Ãß°¡ ÇÒ ¼ö ÀÖµµ·Ï CCParallaxNode¸¦ »ý¼ºÇÑ´Ù.
CCParallaxNode *parallaxNode = CCParallaxNode::create() 2. ¹è°æ À̹ÌÁö ·Îµù
½ºÇÁ¶óÀÌÆ® À̹ÌÁö¸¦ ·ÎµùÇÏ¿© Æз²·º½º³ëµå¿¡ Ãß°¡ ÇÑ´Ù. µÎ ¹ø° ÀÎÀÚ parallaxRatio´Â ¼Óµµ ºñÀ²ÀÌ´Ù. ij¸¯ÅÍ¿Í °°Àº ¼Óµµ¶ó¸é 1·Î ÁØ´Ù.
parallaxNode->addChild(background, -1, ccp(1, 0), CCPointZero) 3. ¶Ç ´Ù¸¥ ¹è°æ À̹ÌÁö ·Îµù(¹öÆ° À̹ÌÁö¸¦ º®À¸·Î »ý°¢ÇÑ´Ù)
¹öÆ° ½ºÇÁ¶óÀÌÆ® À̹ÌÁö´Â XÃàÀ¸·Î 10¹è³ª ºü¸£°Ô ¿òÁ÷À̵µ·Ï ÇÏ¿´´Ù. parallaxNode->addChild(wall, 0, ccp(10, 0), ccp(300, 100)) 4. »çÀÌµå ½ºÅ©¸¦ ¾×¼Ç »ý¼º
ÁÂ, ¿ì ¹Ýº¹µÈ Ⱦ½ºÅ©·Ñ ¾×¼ÇÀ» ÀÛ¼ºÇÑ´Ù. CCActionInterval *go = CCMoveBy::create(3, ccp( -100, 0)); CCActionInterval *goBack = go->reverse(); CCFiniteTimeAction *seq = CCSequence::create( go, goBack, NULL); CCAction *act = CCRepeatForever::create(( CCActionInterval*) seq);
5. ÆÓ·²·º½º¿¡ ¾×¼Ç Ãß°¡
Ⱦ½ºÅ©·Ñ ¹Ýº¹ ¾×¼ÇÀ» ½ÇÇàÇÑ´Ù.
parallaxNode->runAction( act) 6. ·¹À̾ Æз²·º½º ³ëµå Ãß°¡
·¹À̾ ÃÖÁ¾ÀûÀ¸·Î Ãß°¡ÇØ¾ß È¸é¿¡¼ º¼¼ö ÀÖ´Ù. this->addChild( parallaxNode, 0)
CCParallaxNode
//Æз²·º½º³ëµå »ý¼º
CCParallaxNode *parallaxNode = CCParallaxNode::create();
//¹è°æ À̹ÌÁö ·Îµù
CCSprite *background = CCSprite::create("Images/background.png");
background->setAnchorPoint( CCPointZero);
parallaxNode->addChild(background, -1, ccp(1, 0), CCPointZero);
//¶Ç ´Ù¸¥ ¹è°æ À̹ÌÁö ·Îµù(¹öÆ° À̹ÌÁö¸¦ º®À¸·Î »ý°¢ÇÑ´Ù)
CCSprite *wall = CCSprite::create("Images/btn-highscores-normal.png");
wall->setAnchorPoint( CCPointZero);
parallaxNode->addChild(wall, 0, ccp(10, 0), ccp(300, 100));
//»çÀÌµå ½ºÅ©¸¦ ¾×¼Ç »ý¼º
CCActionInterval *go = CCMoveBy::create(3, ccp( -100, 0));
CCActionInterval *goBack = go->reverse();
CCFiniteTimeAction *seq = CCSequence::create( go, goBack, NULL);
CCAction *act = CCRepeatForever::create(( CCActionInterval*) seq);
//ÆÓ·²·º½º¿¡ ¾×¼Ç Ãß°¡
parallaxNode->runAction( act);
//·¹À̾ Æз²·º½º ³ëµå Ãß°¡
this->addChild( parallaxNode, 0);
Âü°í )
Å« ¹è°æ ½ºÅ©·Ñ
µð¹ÙÀ̽º¿¡ µû¶ó ³Ê¹« Å« À̹ÌÁö¸¦ ó¸® ¸ø ÇÒ ¼öµµ ÀÖ´Ù. À̶§´Â, À̹ÌÁö¸¦ ºÐÇÒÇÏ¿© ½ºÅ©·Ñ ÇÏ¸é µÈ´Ù.
µÎ °³ÀÇ À̹ÌÁö·Î ºÐ¸® ÇßÀ» ¶§ À̹ÌÁöÀÇ Å©±âÀÌ´Ù.
À̹ÌÁö1 : 287 X 376 À̹ÌÁö2 : 277 X 376
CCParallaxNode¿¡ ½ºÇÁ¶óÀÌÆ® À̹ÌÁö¸¦ Ãß°¡ ÇÒ ¶§(addChild) ¼¼ ¹ø° Àμö positionOffset¿¡¼ À̹ÌÁöÀÇ À§Ä¡¸¦ ÁØ´Ù.
Áï, µÎ ¹ø° À̹ÌÁö Ãß°¡½Ã¿¡ XÃàÀÇ offsetÀ» 287·Î ÁØ´Ù.
Big Sprite Image
//¹è°æ À̹ÌÁö ·Îµù
CCSprite *background = CCSprite::create("Images/min1.png");
background->setAnchorPoint( CCPointZero);
parallaxNode->addChild(background, -1, ccp(1, 0), CCPointZero);
//¶Ç ´Ù¸¥ ¹è°æ À̹ÌÁö ·Îµù(¹öÆ° À̹ÌÁö¸¦ º®À¸·Î »ý°¢ÇÑ´Ù)
CCSprite *wall = CCSprite::create("Images/min2.png");
wall->setAnchorPoint( CCPointZero);
parallaxNode->addChild(wall, -1, ccp(1, 0), ccp(287, 0));
Ȥ½Ã¶óµµ À̹ÌÁö°¡ ¸¸³ª´Â ºÎºÐ¿¡ °ËÀº ÀÚ±¹ÀÌ »ý±ä´Ù¸é Anti-AliasingÀ» ²ö´Ù.
background->getTexture()->setAliasTexParameters();
wall->getTexture()->setAliasTexParameters();
|