上一篇文章中,我已经跑起了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会越来越深入的理解。
既然上路了,就全速前行吧!