下载
官网下载cocos:
写这篇文章时cocos的版本是v3.10,更新时间是2016年01月18日。
安装
本文使用的是windows系统,v3.10版本直接安装就可以了,不需要额外的操作。
使用
打开Cocos:
Cocos的基础界面如下:
点击新建项目:
这里使用C++语言,其它不变。
点击完成后,会直接打开Cocos Studio:
不过目前先不需要使用这个,关闭即可。然后回到Cocos的主界面,使用VS打开项目:
打开后的VS的资源界面如下:
直接编译项目:
并执行得到结果:
Cocos基本流程
1. cocos执行的起始是main.cpp(见上面的VS资源图):
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// create the application instance
AppDelegate app;
return Application::getInstance()->run();
}
注意上面代码中的最后一句,它算是cocos程序的真正入口。
2. Application的实现位于AppDelegate中:
class AppDelegate : private cocos2d::Application
{
public:
AppDelegate();
virtual ~AppDelegate();
//后面省略
从这里可以看到AppDelegate就是Application的一个子类,而main中获取到的就是它的一个实例,并执行。
3. 在Application中的主要作用的cocos程序的基本初始化,最主要的是一个叫Director的单例的初始化。这里先不介绍了。
4. 在Application还会创建一个Scene实例,它是屏幕显示的基础,当Scene开始运行时,程序也就算正式展现给用户了。
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::createWithRect("MyFirstCocosProject", Rect(0, 0, 960, 640));
director->setOpenGLView(glview);
}
director->getOpenGLView()->setDesignResolutionSize(960, 640, ResolutionPolicy::SHOW_ALL);
// turn on display FPS
director->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / 60);
FileUtils::getInstance()->addSearchPath("res");
// create a scene. it's an autorelease object
auto scene = HelloWorld::createScene();
// run
director->runWithScene(scene);
return true;
}
5. 实际上Scene本身并不会显示内容,要显示内容还要借助于加载在其上的Layer等组件,这里通过HelloWorldScene.cpp实现。(虽然名字中有个Scene,但要注意它其实是一个Layer子类)
6. HelloWorldScene.cpp代码说明:
Scene* HelloWorld::createScene()
{
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
上面代码好像也没有什么好说的......
bool HelloWorld::init()
{
// 1. super init first
if ( !Layer::init() )
{
return false;
}
auto rootNode = CSLoader::createNode("MainScene.csb");
addChild(rootNode);
return true;
}
这里需要说明的是MainScene.csb,它是通过Cocos Studio创建的,默认就是一幅图,即前面cocos运行的结果。
通过Cocos Studio可以创建各种组件和动画,然后通过CSLoader就可以在代码中调用这些组件和动画,来完成我们的游戏。
不过其实Cocos Studio并不是必须的。也可以直接写代码来得到组件和动画等等。
PS:在Mac上的操作基本一样,只是编辑代码的工具从VS变成了Xcode。
2016/6/27更新
Cocos 2d-x更新v3.11.1版本。
这个版本创建工程略有不同。
首先是图形化工具统一成了Cocos Creator,界面如下:
根据说明一步步操作就可以。(不过这个貌似不能生成Xcode工程,不确定它是给编程用的还是设计用的,可能只是给设计用的,不包含编程的部分)
如果下载的是源代码,则进入cocos2d-x-3.11.1/tools/cocos2d-console/bin目录:
创建工程的命令如下:
./cocos new TestDemo -p com.jw -l cpp -d ~/Documents/CocosProjects/
几个参数说明:
- -p:指定包名,没有特别要求,随便写;
- -d:指定项目的目录;
- -l:指定开发语言,有c++,javascript和lua;
之后在对应的目录下找到Xcode的项目就可以编辑开发。