现在我们来看看cocos2dx 3.2在xcode下安装模板是怎么做到的。学会了你自己就可以安装了。

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

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

cocos2dx 3.2在xcode下安装模板

下面我就说下怎么添加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. // Created by ___FULLUSERNAME___ on ___DATE___.
  6. //___COPYRIGHT___
  7. //
  8. #ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
  9. #define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
  10. #include "cocos2d.h"
  11. USING_NS_CC;
  12. class ___FILEBASENAMEASIDENTIFIER___ : public Layer
  13. {
  14. public:
  15. ___FILEBASENAMEASIDENTIFIER___();
  16. ~___FILEBASENAMEASIDENTIFIER___();
  17. static Scene* createScene();
  18. virtual bool init();
  19. CREATE_FUNC(___FILEBASENAMEASIDENTIFIER___);
  20. private:
  21. void initData();
  22. };
  23. #endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */
5、修改___FILEBASENAME___.cpp
打开2dx Scene Class.xctemplate/___FILEBASENAME___.cpp,修改成以下内容:
  1. //
  2. // ___FILENAME___
  3. // ___PROJECTNAME___
  4. //
  5. // Created by ___FULLUSERNAME___ on ___DATE___.
  6. //___COPYRIGHT___
  7. //
  8. #include "___FILEBASENAME___.h"
  9. ___FILEBASENAMEASIDENTIFIER___::___FILEBASENAMEASIDENTIFIER___()
  10. {
  11. }
  12. ___FILEBASENAMEASIDENTIFIER___::~___FILEBASENAMEASIDENTIFIER___()
  13. {
  14. }
  15. Scene* ___FILEBASENAMEASIDENTIFIER___::createScene()
  16. {
  17. auto scene = Scene::create();
  18. auto layer = ___FILEBASENAMEASIDENTIFIER___::create();
  19. scene->addChild(layer);
  20. return scene;
  21. }
  22. bool ___FILEBASENAMEASIDENTIFIER___::init()
  23. {
  24. if ( !Layer::init() )
  25. {
  26. return false;
  27. }
  28. initData();
  29. return true;
  30. }
  31. #pragma mark - initData
  32. void ___FILEBASENAMEASIDENTIFIER___::initData()
  33. {
  34. Size visibleSize = Director::getInstance()->getVisibleSize();
  35. // add your codes here...
  36. }
ok, 这样就完成了一个类模板的添加。
现在在XCode里面新建一个2dx Scene类看看。是不是已经有默认内容了。
  1. //
  2. // MyScene.h
  3. // MagicDemo
  4. //
  5. //
  6. //
  7. #ifndef __MagicDemo__MyScene__
  8. #define __MagicDemo__MyScene__
  9. #include "cocos2d.h"
  10. USING_NS_CC;
  11. class MyScene : public Layer
  12. {
  13. public:
  14. MyScene();
  15. ~MyScene();
  16. static Scene* createScene();
  17. virtual bool init();
  18. CREATE_FUNC(MyScene);
  19. private:
  20. void initData();
  21. };
  22. #endif /* defined(__MagicDemo__MyScene__) */
  23. //
  24. // MyScene.cpp
  25. // MagicDemo
  26. //
  27. //
  28. //
  29. #include "MyScene.h"
  30. MyScene::MyScene()
  31. {
  32. }
  33. MyScene::~MyScene()
  34. {
  35. }
  36. Scene* MyScene::createScene()
  37. {
  38. auto scene = Scene::create();
  39. auto layer = MyScene::create();
  40. scene->addChild(layer);
  41. return scene;
  42. }
  43. bool MyScene::init()
  44. {
  45. if ( !Layer::init() )
  46. {
  47. return false;
  48. }
  49. initData();
  50. return true;
  51. }
  52. #pragma mark - initData
  53. void MyScene::initData()
  54. {
  55. Size visibleSize = Director::getInstance()->getVisibleSize();
  56. // add your codes here...
  57. }
对应的你可以添加Layer的类模板。方法一样,我就不重复了。
关于文件模板里面的一个预定义变量,介绍下:
macro_file
ok,还有很多有趣的功能,可以大家自己探索。比如工程模板,插件等等。