배경 무한 스크롤링

|

#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"

using namespace cocos2d;
using namespace CocosDenshion;

CCScene* HelloWorld::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();
   
    // 'layer' is an autorelease object
    HelloWorld *layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    /////////////////////////////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.

    // add a "close" icon to exit the progress. it's an autorelease object
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                                        "CloseNormal.png",
                                        "CloseSelected.png",
                                        this,
                                        menu_selector(HelloWorld::menuCloseCallback) );
    pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );

    // create menu, it's an autorelease object
    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
    pMenu->setPosition( CCPointZero );
    this->addChild(pMenu, 1);
   
    CCSize winS = CCDirector::sharedDirector()->getWinSize();
   
   
    sprite1 = CCSprite::create("HelloWorld.png");
    this->addChild(sprite1);
    sprite1->setPosition(ccp(0, 0));
    sprite1->setAnchorPoint(ccp(0,0));
   
    sprite2 = CCSprite::create("HelloWorld.png");
    this->addChild(sprite2);
    sprite2->setPosition(ccp(winS.width/2, 0));
    sprite2->setAnchorPoint(ccp(0,0));
   
   
   
   
    backSpeed = ccp(-2,0);
   
   
    this->schedule(schedule_selector(HelloWorld::gameLogic));
    return true;
}

void HelloWorld::gameLogic(float dt)
{
    sprite1->setPositionX(sprite1->getPositionX()+backSpeed.x);
    sprite2->setPositionX(sprite2->getPositionX()+backSpeed.x);
    if(sprite1->getPositionX() < -sprite1->getContentSize().width)
    {
        CCSprite *tmp;
        tmp = sprite1;
        sprite1 = sprite2;
        sprite2 = tmp;
        sprite2->setPosition(ccp(sprite1->getPositionX()+sprite1->getContentSize().width, 0));
    }
   
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->end();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
}


CCAction사용하면 쉽게 할수있음

ParallaxNode 사용해도 쉽게 할수있음


'잡다한것들전부 > ' 카테고리의 다른 글

오비비 테스트 apk  (0) 2013.12.18
중급 개발자가 되는 방법 5가지  (0) 2013.12.16
배경 무한 스크롤링  (0) 2013.12.11
포물선 운동 관련 소스  (0) 2013.12.10
헥사 게임 알고리즘  (0) 2013.12.03
비쥬얼드 로직  (0) 2013.12.02
Trackback 0 And Comment 0