序
写这个系列的文章是为了记录学习cocos2dx的过程和心得,希望能藉此增加对所学知识的理解,清晰思路。先从一款简单的‘跑酷’游戏开始↖(^ω^)↗
这篇文章主要介绍了Cocosd-x框架和新建项目的基本结构。
cocos2d-x总览
Cocos2d-x是MIT许可证下发布的开源游戏引擎,可以用来开发跨平台(iOS、Android、Windows Phone等)游戏,支持的开发语言有c++、lua、js。是国内2d手游开发的主要引擎。
引擎的开发语言是C++,所以在C语言知识背景下,要重点学一下C++,对c++内存模型,继承原理等有比较深刻的了解后在结合引擎源码去看,同时练习,就能一步一步熟练的用好引擎了。更深入的,后期会学习opengl方面的知识,自己写shader来丰富游游戏表现。
Cocosdx从3.0版本开始支持c++11,所以我用的是3.0版本。版本信息可以在cocos2d.cpp里查看,比如我这里就是
const char* cocos2dVersion()
{
return "cocos2d-x 3.0";
}
正文
关于环境的搭建,项目的创建,官方和网上资料很多,所以我想就跳过这部分。
一、Cocosd-x目录结构
CocosDenshion |
音频支持。注意:Android平台中背景音乐和短音效所使用的系统API不同。 |
cocos2dx |
Cocos2d-x框架的主目录。 |
document |
你可以下载doxygen文档系统,利用该系统打开本文档文件夹内的doxygen.config文件,然后再生成离线API文档。 |
extensions |
如果需要更多图形用户界面的控制功能、网络访问、CocosBuilder支持甚至2.5D功能,你可以使用using namespace cocos2d::extension。 |
external |
包括box2d及Chipmunk库。 |
licenses |
cocos2d依赖很多其他开源项目。所有授权许可文件都在这个目录。 |
samples |
重要!这是你该开始用到的文件。从Cpp/HelloCpp开始学习,你会在TestCpp中发现所有类的用法。lua和js样本也在这个目录。 |
scripting |
我知道你不喜欢C++,写起来太复杂。没问题,我们有Lua和Javascript。Scripting文件夹包括来自火狐的lua官方引擎和SpiderMonkey引擎。 |
template |
该目录包括在不同集成开发环境及不同平台中创建Cocos2d-x新项目的模板。这里汇集了数量庞大覆盖各种开发环境和平台的模板! |
tools |
包括将C++绑定至lua及javascript的脚本文件。 |
CHANGELOG |
作者修订记录文档。 |
cocos2d-win32.vc2010.sln |
配套Visual Studio 2010打开。注意:VS 2008自Cocos2d-x v2.0版本以来就不再支持。 |
cocos2d-win32.vc2012.sln |
配套Visual Studio 2012打开。 |
create-android-project.bat |
在Windows平台运行。具体用法请参考如何用脚本创建Android项目。 |
create-android-project.sh |
在Linux或OS X平台运行。具体用法请参考如何用脚本创建Android项目。 |
install-templates-msvc.bat |
执行该文件安装后,你可以在Visual Studio中创建空的Cocos2d-x项目。 |
install-templates-xcode.sh |
执行该文件安装后,你可以在Xcode中创建空的Cocos2d-x项目。 |
二、项目结构
建好一个新的cocos2d-x项目后,我们会看到脚本已经自动在项目文件夹下copy进去了很多文件夹,我们从头说起
Classes 我们写好的类都会放到这里面,这样能在编译不同平台的可执行文件时,都能用同一套代码。
cocos2d 构建项目需要的引擎先关lib .h 脚本文件等都在里面。
proj.***这些文件夹是不同平台下的项目,如果在windows上开发,就用在proj.win32里的项目启动。
Resources 存放项目需要的图片资源、配置、脚本 等等。
三、游戏入口
我们编写的游戏逻辑,是从AppDelegate.cpp开始的。从visualstudio中打开该类,找到applicationDidFinishLaunching()这个方法,就是我们游戏逻辑开始的地方。
这篇和以后文章中很多都是yizhengtutu自己的理解,如果有说的不对的地方,希望同学们不吝赐教,共同进步
第一篇文章比较简单,主要是对Cocosd-x先来一个总体的认识。
下一篇文章,我将从代码入口开始,加入游戏角色,地图背景。精彩的游戏之旅,开始了!
最后推荐一些学习资源和网址:
C++primer
Effective C++
Opengl编程指南