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

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

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


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

  • cocos2.x版本

在tools\project-creator文件夹下有 create_project.py 进入这个文件夹
cd D:\cocos2d-x-2.2.6\tools\project-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.6\projects

  • cocos3.x版本

没有tools\project-creator文件夹

cd G:\cocos2dx\cocos2d-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;
}

最新文章

  1. pcDuino-V2利用madplay播放音乐
  2. 配置hadoop
  3. log4j配置
  4. 聊聊GISer的职业发展
  5. Custom IFormatProvider
  6. 64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
  7. haar-like特征(转载)
  8. Careercup - Microsoft面试题 - 6366101810184192
  9. 在WinForm编程中犯的一些错误
  10. Mysql一些重要配置参数的学习与整理系列
  11. iOS设备、Icon、LaunchImage、图片分辨率
  12. Nodejs in Visual Studio Code 08.IIS
  13. go import
  14. SDUTOJ 1298 活动选择
  15. printf输出格式
  16. Java NIO 之 Socket Channel
  17. Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤
  18. OO第二单元的总结
  19. windows 下安装MySQL 服务无法启动类问题
  20. 学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论

热门文章

  1. pytest重复执行
  2. k8s资源需求及资源限制
  3. 基于django中settings中间件源码思想,实现功能的插拔式设计
  4. Attention机制中权重的计算
  5. JS拖动滑块验证
  6. C# => 写法
  7. 51 Nod 线段最长重叠部分
  8. jQuery_替换操作
  9. JPA查询getOne()与findOne()的差异以及一些小问题
  10. C++入门经典-例2.8-输出整数,控制打印格式