ParallaxNode를 이용한 배경스크롤 구현하기
h++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #ifndef test257_hpp #define test257_hpp #include "cocos2d.h" USING_NS_CC; class Test257 : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); virtual bool init(); // implement the "static create()" method manually CREATE_FUNC(Test257); void initBG(); //배경 }; #endif | cs |
c++)
배경레이어 대신 ParallaxNode를 생성하고 스프라이트 객체를 ParallaxNode에 추가한다
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #include "test257.hpp" USING_NS_CC; Scene* Test257::createScene() { auto scene = Scene::create(); auto layer = Test257::create(); scene->addChild(layer); return scene; } bool Test257::init() { if ( !Layer::init()) { return false; } initBG(); return true; } //배경그리기 void Test257::initBG(){ //배경레이어 대신 ParallaxNode 에 액션기능을 구현하고 스프라이트 객체를 ParallaxNode 에 추가 auto node = ParallaxNode::create(); this->addChild(node); //ParallaxNode 에 애니메이션 구현 auto action1 = MoveBy::create(10.0, Point(-2000,0)); auto action2 = Place::create(Point::ZERO); auto action3 = Sequence::create(action1, action2, NULL); auto action4 = RepeatForever::create(action3); node->runAction(action4); /** 첫번째 이미지 **/ auto sprite1 = Sprite::create("background2.png"); sprite1->setAnchorPoint(Point::ZERO); //addChild(스프라이트, z-order, 이동비율, 좌표) : ParallaxNode 에 Sprite 객체 추가 //이동비율 : ParallaxNode를 기준으로 한 이동비율 // 1이면 ParallaxNode와 똑같이 이동하고 0이면 이동하지 않으며 2이면 ParallaxNode보다 2배 빨리 이동한다 node->addChild(sprite1, 0, Point(1,0), Point::ZERO); auto sprite2 = Sprite::create("background2.png", Rect(0,0,480,320)); sprite2->setAnchorPoint(Point::ZERO); node->addChild(sprite2, 0, Point(1,0), Point(2000,0)); /** 두번째 이미지 **/ auto sprite3 = Sprite::create("background3.png"); sprite3->setAnchorPoint(Point::ZERO); node->addChild(sprite3, 1, Point(2,0), Point::ZERO); //같은시간에 ParallaxNode 보다 2000px 더 이동하므로 스프라이트 객체를 1개더 추가한다 auto sprite4 = Sprite::create("background3.png"); sprite4->setAnchorPoint(Point::ZERO); node->addChild(sprite4, 1, Point(2,0), Point(2000,0)); auto sprite5 = Sprite::create("background3.png", Rect(0, 0, 480, 114)); sprite5->setAnchorPoint(Point::ZERO); node->addChild(sprite5, 1, Point(2,0), Point(4000,0)); } | cs |
'IT > - 프로그래밍' 카테고리의 다른 글
안드로이드 uiautomatorviewer 실행시 Unable to connect to adb. Check if adb is installed correctly. (0) | 2017.03.18 |
---|---|
Cocos 타일이미지를 이용한 배경스크롤 하기 (0) | 2017.03.17 |
Cocos 여러이미지로 배경 스크롤하기 (0) | 2017.03.15 |
Cocos 배경이미지 스크롤시 끊김 문제 해결 (0) | 2017.03.14 |
Cocos 배경이미지 스크롤하기 (0) | 2017.03.13 |