给cocos2dx制作xcode模板

http://blog.csdn.net/cocos2der/article/details/17610001


因为常用cocos2dx开发游戏,所以每次新建cpp类文件的时候,XCode默认生成的cpp类基本就是一个空文件,每次都要重复实现cocos2dx的基本代码。很麻烦。(虽然我每次都是修改了HelloWorld文件,新建的文件直接copy HelloWorld内容。感觉还是挺麻烦的。)


今天就修改了下类模板,添加了2个cocos2dx的类模板,下面是新建文件的时候,是不是多出了2个类模板。




下面我就说下怎么添加xcode类模板,很简单的。

1、打开Xcode的类模板目录地址:/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates


2、打开里面C and C++文件,就会看到Xcode的cpp类模板文件。复制一个C++ Class.xctemplate文件夹取名:2dx Scene Class.xctemplate,放在C and C++目录下。


3、修改TemplateInfo.plist(主要修改创建文件时候的描述介绍)

打开2dx Scene Class.xctemplate/TemplateInfo.plist,修改Description的值为:A C++ class for Cocos2d-x Scene.


4、修改___FILEBASENAME___.h

打开2dx Scene Class.xctemplate/___FILEBASENAME___.h,修改成以下内容:

  1. //
  2. //___FILENAME___
  3. //___PROJECTNAME___
  4. //
  5. //Createdby___FULLUSERNAME___on___DATE___.
  6. //___COPYRIGHT___
  7. #ifndef_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
  8. #define_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
  9. #include"cocos2d.h"
  10. USING_NS_CC;
  11. class___FILEBASENAMEASIDENTIFIER___:publicLayer
  12. {
  13. public:
  14. ___FILEBASENAMEASIDENTIFIER___();
  15. ~___FILEBASENAMEASIDENTIFIER___();
  16. staticScene*createScene();
  17. virtualboolinit();
  18. CREATE_FUNC(___FILEBASENAMEASIDENTIFIER___);
  19. private:
  20. voidinitData();
  21. };
  22. #endif/*defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____)*/


5、修改___FILEBASENAME___.cpp

打开2dx Scene Class.xctemplate/___FILEBASENAME___.cpp,修改成以下内容:

    #include"___FILEBASENAME___.h"
  1. ___FILEBASENAMEASIDENTIFIER___::___FILEBASENAMEASIDENTIFIER___()
  2. {
  3. }
  4. ___FILEBASENAMEASIDENTIFIER___::~___FILEBASENAMEASIDENTIFIER___()
  5. }
  6. Scene*___FILEBASENAMEASIDENTIFIER___::createScene()
  7. autoscene=Scene::create();
  8. autolayer=___FILEBASENAMEASIDENTIFIER___::create();
  9. scene->addChild(layer);
  10. returnscene;
  11. bool___FILEBASENAMEASIDENTIFIER___::init()
  12. if(!Layer::init())
  13. returnfalse;
  14. initData();
  15. true;
  16. #pragmamark-initData
  17. void___FILEBASENAMEASIDENTIFIER___::initData()
  18. SizevisibleSize=Director::getInstance()->getVisibleSize();
  19. //addyourcodeshere...
  20. }


ok,这样就完成了一个类模板的添加。


现在在XCode里面新建一个2dx Scene类看看。是不是已经有默认内容了。

    //MyScene.h
  1. //MagicDemo
  2. //CreatedbyLiuYanghuion13-12-27.
  3. #ifndef__MagicDemo__MyScene__
  4. #define__MagicDemo__MyScene__
  5. classMyScene: MyScene();
  6. ~MyScene();
  7. CREATE_FUNC(MyScene);
  8. #endif/*defined(__MagicDemo__MyScene__)*/

    //MyScene.cpp
  1. #include"MyScene.h"
  2. MyScene::MyScene()
  3. MyScene::~MyScene()
  4. Scene*MyScene::createScene()
  5. autolayer=MyScene::create();
  6. boolMyScene::init()
  7. voidMyScene::initData()
  8. }


对应的你可以添加Layer的类模板。方法一样,我就不重复了。


关于文件模板里面的一个预定义变量,介绍下:




ok,还有很多有趣的功能,可以大家自己探索。比如工程模板,插件等等。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...