zoukankan      html  css  js  c++  java
  • cocos2dx基础篇(1) Cocos2D-X项目创建

    已经入行工作半年多时间了,以前都是把这些东西记录在有道云上面的,现在抽出些时间把以前的笔记腾过来。

    具体的环境配置就不用说了,因为现在已经是2018年,只需要下载对应版本解压后就能使用,不用再像多年前那样配置环境

    需要的安装包:vs2013,cocos2d-x-2.2.3.zip,python-2.7.8
    我自己用的是cocos2d-x-2.2.6,学习最初用的这个版本,后来才用的3.x版本


    项目创建方法(使用python创建)

    • cocos2.x版本

    在toolsproject-creator文件夹下有 create_project.py 进入这个文件夹
    cd D:cocos2d-x-2.2.6 oolsproject-creator
    然后 d: 

    创建工程目录:
    python create_project.py -project projectname -package com.XXXX.XXXX -language cpp

    python create_project.py:运行脚本的工具以及创建工程的脚本

    -project projectname:工程名

    -package com.XXXX.XXXX :包名

    -language cpp:开发语言,可选项有cpp,lua,javascript

    产生的目录路径:D:cocos2d-x-2.2.6projects

    • cocos3.x版本

    没有toolsproject-creator文件夹

    cd G:cocos2dxcocos2d-x-3.16

    创建工程目录:

    cocos new HelloWorld -p com.LMX.HelloWorld -l cpp -d projects
    cocos new -l lua -p com.org.Gao -d F:cocosPorject


    查看cocos2d版本

    在工程目录libcocos2d下面有一个文件cocos2d.cpp

    #include "cocos2d.h"
    
    NS_CC_BEGIN
    
    const char* cocos2dVersion()
    {
        return "cocos2d-x 2.2.6";
    }
    
    NS_CC_END

    工程的入口,从main.cpp开始

    #include "main.h"
    #include "AppDelegate.h"
    #include "CCEGLView.h"
    
    USING_NS_CC;
    
    int APIENTRY _tWinMain(HINSTANCE hInstance,
                           HINSTANCE hPrevInstance,
                           LPTSTR    lpCmdLine,
                           int       nCmdShow)
    {
        UNREFERENCED_PARAMETER(hPrevInstance);
        UNREFERENCED_PARAMETER(lpCmdLine);
    
        // create the application instance
        AppDelegate app;  // delegate表示代理
        CCEGLView* eglView = CCEGLView::sharedOpenGLView(); // shared表示单例
        eglView->setViewName("WangGuiLin");
        eglView->setFrameSize(1024, 768);
        return CCApplication::sharedApplication()->run();
    }
    

    真正意义上的入口

    bool AppDelegate::applicationDidFinishLaunching() {
        // initialize director
        CCDirector* pDirector = CCDirector::sharedDirector();
        CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
    
        pDirector->setOpenGLView(pEGLView);
    	
        // 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);
    
        // 创建场景
         CCScene *pScene = HelloWorld::scene();
    
        // 运行场景
        pDirector->runWithScene(pScene);
    
        return true;
    }

    上面运行了由HelloWorld创建的场景,接下来看看HelloWorld

    #ifndef __HELLOWORLD_SCENE_H__
    #define __HELLOWORLD_SCENE_H__
    
    #include "cocos2d.h"
    
    class HelloWorld : public cocos2d::CCLayer
    {
    public:
        // 真正的初始化
        virtual bool init();  
    
        // there's no 'id' in cpp, so we recommend returning the class instance pointer
        static cocos2d::CCScene* scene();
        
        // 回调函数
        void menuCloseCallback(CCObject* pSender);
        
        // 里面调用了初始化
        CREATE_FUNC(HelloWorld);
    };
    
    #endif // __HELLOWORLD_SCENE_H__
    

    这里的scene()只创建scene和layer,并将layer加入scene,然后返回scene

    CCScene* HelloWorld::scene()
    {
        // 创建场景
        CCScene *scene = CCScene::create();
        
        // 创建层
        HelloWorld *layer = HelloWorld::create();
    
        // 将层加入场景
        scene->addChild(layer);
    
        // 返回场景
        return scene;
    }
  • 相关阅读:
    setTimeout中0毫秒延时
    javascript中call和apply方法
    javascript闭包
    apns 服务
    新的开始,新的起点
    心情笔记
    如何解决控件附件上传时超大附件无法上传的问题
    BPM实例分享——日期自动计算
    BPM实例分享——金额规则大写
    分享一个程序猿在流程数据查看权限问题的总结
  • 原文地址:https://www.cnblogs.com/lmx282110xxx/p/10798741.html
Copyright © 2011-2022 走看看