Cocos2D-X学习笔记 1 helloworld

尽量避免使用UI,因为要适配IOS、ANDROID、WinPhone等各种平台   =>  新的一个适配各种平台,减小移植难度的游戏引擎Cocos2D-X


Cocos2D-X     核心主要是使用C++来写的,外围有其他的代码,比如OC、Android、C#


github下载Cocos2D-X 

1、在window操作系统下搭建开发环境,新版本的Cocos2D-X已经没有.bat文件,可以从

http://download.csdn.net/detail/joejames/7331707下载一个,配置好visual studio的cocos2dx创建工程插件

2、也可以参见目录下的README.md配置path,然后用脚本创建工程


很多游戏的一些更新包主要使用lua脚本要实现,这样替换更加方便,维护起来也方便


AppDelegate.h和.cpp文件:项目中程序的入口文件,类似于main函数,在IOS就是程序的入口文件


bool AppDelegate::applicationDidFinishLaunching()                  程序启动后将调用这个方法

void AppDelegate::applicationDidEnterBackground()                  游戏将要进入后台调用这个方法

void AppDelegate::applicationWillEnterForeground()                   游戏即将进入前台调用这个方法


CC里一般名字有shared的一般都是使用单例模式,例如下面的导演类


    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    CCScene *pScene = HelloWorld::scene();

    // run
    pDirector->runWithScene(pScene);

    return true;


游戏元素:任何可以呈现出来的元素,例如 场景、层、精灵


CCScene *scene = CCScene::create();   
HelloWorld *layer = HelloWorld::create(); 
scene->addChild(layer);  

addChild方法:把一个游戏元素放到另一个游戏元之中,只有把一个游戏元素放置到其他已经呈现出来的游戏元素中,它才会呈现出来。

CCDirector运行了scene ,scene 上的layer 就会显示出来


virtual bool init(); 初始化方法:

        //(1) 对父类进行初始化   

        if ( !CCLayer::init() )   
        {   
            return false;   
        }   

        //(2) 创建菜单并添加到层  
        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
            "CloseNormal.png",
            "CloseSelected.png",
            this,
            menu_selector(HelloWorld::menuCloseCallback));
        pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));
        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
        pMenu->setPosition(CCPointZero);
        this->addChild(pMenu, 1);

        //(3) 创建"Hello World"标签并添加到层中   
        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);
        CCSize size = CCDirector::sharedDirector()->getWinSize();
        pLabel->setPosition(ccp(size.width / 2, size.height - 50));
        this->addChild(pLabel, 1);

        //(4) 创建显示“HelloWorld.png”的精灵并添加到层中   
        CCSprite* pSprite = CCSprite::create("HelloWorld.png");
        pSprite->setPosition(ccp(size.width/2, size.height/2));
        this->addChild(pSprite, 0);

        bRet = true;


你可能感兴趣的:(游戏,C++,helloworld,cocos2d-x,游戏引擎)