上一篇文章中,我已经跑起了cocos2d-x中的一个示例,今天要从宏观角度来了解一下cocos2d-x,当然,我的目的是让其在Android上发挥作用,其他平台暂且忽略。
看看它的目录结构:
[linc@localhost cocos2d-x-2.2.1]$ tree -L 2
.
|-- AUTHORS //详细列出了为此项目出力的大侠
|-- build-nacl.sh //编译本地端(native client)所有组件的脚本
|-- build-win32.bat //windows上的编译批处理
|-- CHANGELOG //版本更新日志
|-- cocos2d-win32.vc2010.sln //和下面的一起为各个版本VC的解决方案(sln)
|-- cocos2d-win32.vc2012.sln
|-- cocos2d-winrt.vc2012.sln
|-- cocos2d-winrt.vc2013.sln
|-- cocos2d-wp8.vc2012.sln
|-- cocos2dx //核心所在(可以称其为渲染引擎),引擎的大部分实现代码在此
| |-- actions //引擎重要概念之三的动作都在这儿了
| |-- Android.mk //android的makefile,必须要重视
| |-- base_nodes
| |-- CCCamera.cpp //引擎重要概念之一摄像头
| |-- CCCamera.h
| |-- CCConfiguration.cpp
| |-- CCConfiguration.h
| |-- CCDirector.cpp //引擎重要概念之二导演
| |-- CCDirector.h
| |-- ccFPSImages.c
| |-- ccFPSImages.h
| |-- CCScheduler.cpp
| |-- CCScheduler.h
| |-- cocoa //基础库,CCObject在此
| |-- cocos2d.cpp
| |-- draw_nodes
| |-- effects
| |-- include
| |-- kazmath //重要的数学库
| |-- keypad_dispatcher
| |-- label_nodes
| |-- layers_scenes_transitions_nodes //引擎重要概念之四、五的场景CCScene和布景CCLayer在此
| |-- menu_nodes
| |-- misc_nodes
| |-- particle_nodes
| |-- platform //可以理解为平台相关吧,关注android部分
| |-- proj.blackberry
| |-- proj.emscripten
| |-- proj.ios
| |-- proj.linux
| |-- proj.mac
| |-- proj.marmalade
| |-- proj.nacl
| |-- proj.tizen
| |-- proj.win32
| |-- proj.winrt
| |-- proj.wp8
| |-- script_support
| |-- shaders //着色器
| |-- sprite_nodes
| |-- support
| |-- text_input_node
| |-- textures //纹理
| |-- tilemap_parallax_nodes
| `-- touch_dispatcher
|-- CocosDenshion //声音模块
| |-- android //这里当然少不了opensl
| |-- blackberry
| |-- emscripten
| |-- include
| |-- ios
| |-- linux
| |-- mac
| |-- marmalade
| |-- proj.blackberry
| |-- proj.emscripten
| |-- proj.ios
| |-- proj.linux
| |-- proj.marmalade
| |-- proj.nacl
| |-- proj.tizen
| |-- proj.win32
| |-- proj.winrt
| |-- proj.wp8
| |-- third_party
| |-- tizen
| |-- win32
| |-- winrt
| `-- wp8
|-- document //很奇耙的文档路径,看看里面都是啥啊?文档呢?
| |-- cocos2dx_portrait.png
| |-- doxygen.config
| |-- Groups.h
| `-- MainPage.h
|-- Emscripten.TODO
|-- extensions //扩展库,里面包含了coco studio。不知道android能否受益呢。
| |-- Android.mk
| |-- AssetsManager
| |-- CCBReader
| |-- cocos-ext.h
| |-- CocoStudio
| |-- ExtensionMacros.h
| |-- GUI
| |-- LocalStorage
| |-- network
| |-- physics_nodes
| |-- proj.blackberry
| |-- proj.emscripten
| |-- proj.linux
| |-- proj.marmalade
| |-- proj.nacl
| |-- proj.tizen
| |-- proj.win32
| |-- proj.winrt
| |-- proj.wp8
| `-- spine
|-- external //里面都是宝贝
| |-- Box2D //知名的物理引起Box2d,官网:http://box2d.org/
| |-- chipmunk //另一个物理引擎,单词意思是花栗鼠,cocos2d官方支持的物理引擎,官网:http://chipmunk-physics.net/
| |-- emscripten //一个神奇的家伙。它是一个使用LLVM的开源C++到JavaScript的编译器。
| |-- libwebsockets //web socket,带来的是高效。它是html5新增加的一种通信协议。
| `-- sqlite3 //这个数据库自不必说
|-- install-deps-linux.sh
|--各种Licnse
|-- make-all-linux-project.sh
|-- Makefile
|-- Makefile.emscripten
|-- plugin
| |-- jsbindings
| |-- plugins
| |-- protocols
| |-- samples
| `-- tools
|-- README.mdown
|-- samples
| |-- Cpp //我主要关注这里的sample,各个版本的都有
| |-- Javascript
| `-- Lua
|-- scripting
| |-- javascript
| `-- lua
|-- template
| |-- multi-platform-cpp
| |-- multi-platform-js
| `-- multi-platform-lua
`-- tools
|-- android-buildsetup.sh
|-- android-emulator-README.md
|-- bindings-generator
|-- closure-compiler
|-- cocos2d-console
|-- jenkins_scripts
|-- lua_project_generator
|-- make-package
|-- project-creator
|-- tojs
|-- tolua++
|-- travis-scripts
`-- xcode4_template_generator
113 directories, 62 files
有了这个初级的概览,对cocos2d-x也算了有了全面的了解,那么伴随着对sample的修改和调试,对cocos2d-x会越来越深入的理解。
既然上路了,就全速前行吧!