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,修改成以下内容:
- @H_502_59@//
- @H_502_59@//___FILENAME___
- //___PROJECTNAME___
- //
- //Createdby___FULLUSERNAME___on___DATE___.
- //___COPYRIGHT___
- @H_502_59@
- @H_502_59@#ifndef_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
- @H_502_59@#define_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
- @H_502_59@
- @H_502_59@#include"cocos2d.h"
- @H_502_59@USING_NS_CC;
- @H_502_59@class___FILEBASENAMEASIDENTIFIER___:publicLayer
- @H_502_59@{
- public:
- @H_502_59@___FILEBASENAMEASIDENTIFIER___();
- @H_502_59@~___FILEBASENAMEASIDENTIFIER___();
- @H_502_59@staticScene*createScene();
- virtualboolinit();
- @H_502_59@CREATE_FUNC(___FILEBASENAMEASIDENTIFIER___);
- private:
- voidinitData();
- @H_502_59@};
- @H_502_59@#endif/*defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____)*/
5、修改___FILEBASENAME___.cpp
打开2dx Scene Class.xctemplate/___FILEBASENAME___.cpp,修改成以下内容:
- @H_502_59@#include"___FILEBASENAME___.h"
- @H_502_59@___FILEBASENAMEASIDENTIFIER___::___FILEBASENAMEASIDENTIFIER___()
- @H_502_59@{
- @H_502_59@}
- @H_502_59@___FILEBASENAMEASIDENTIFIER___::~___FILEBASENAMEASIDENTIFIER___()
- @H_502_59@}
- @H_502_59@Scene*___FILEBASENAMEASIDENTIFIER___::createScene()
- @H_502_59@autoscene=Scene::create();
- @H_502_59@autolayer=___FILEBASENAMEASIDENTIFIER___::create();
- @H_502_59@scene->addChild(layer);
- returnscene;
- @H_502_59@bool___FILEBASENAMEASIDENTIFIER___::init()
- if(!Layer::init())
- returnfalse;
- @H_502_59@initData();
- true;
- @H_502_59@#pragmamark-initData
- void___FILEBASENAMEASIDENTIFIER___::initData()
- @H_502_59@SizevisibleSize=Director::getInstance()->getVisibleSize();
- //addyourcodeshere...
- @H_502_59@}
ok,这样就完成了一个类模板的添加。
现在在XCode里面新建一个2dx Scene类看看。是不是已经有默认内容了。
- //MyScene.h
- //MagicDemo
- //CreatedbyLiuYanghuion13-12-27.
- @H_502_59@#ifndef__MagicDemo__MyScene__
- @H_502_59@#define__MagicDemo__MyScene__
- classMyScene: @H_502_59@MyScene();
- @H_502_59@~MyScene();
- @H_502_59@CREATE_FUNC(MyScene);
- @H_502_59@#endif/*defined(__MagicDemo__MyScene__)*/
- //MyScene.cpp
- @H_502_59@#include"MyScene.h"
- @H_502_59@MyScene::MyScene()
- @H_502_59@MyScene::~MyScene()
- @H_502_59@Scene*MyScene::createScene()
- @H_502_59@autolayer=MyScene::create();
- boolMyScene::init()
- voidMyScene::initData()
- @H_502_59@}
对应的你可以添加Layer的类模板。方法一样,我就不重复了。
关于文件模板里面的一个预定义变量,介绍下: