Cocos2d-x XcodeFileTemplateを作成する
今までCocos2dxのシーンやコンポーネントを追加するときに、
適当にheader,c++ファイルを作成して、またまた適当なファイルをコピってつくってましたが、
いい加減嫌気がさしてきてたのXcodeからテンプレートファイルを作成出来るようにしてみました。
ベースになるc++のテンプレートをコピーして Cocos2d-xにリネームします
$ cp -R /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/C\ and\ C++ ~/Library/Developer/Xcode/Templates/File\ Templates/ $ mv ~/Library/Developer/Xcode/Templates/File\ Templates/C\ and\ C++ ~/Library/Developer/Xcode/Templates/File\ Templates/Cocos2d-x $ cd ~/Library/Developer/Xcode/Templates/File Templates/Cocos2d-x/C++ Class.xctemplate $ ls -la
C++ Class.xctemplate/にこんなファイルがあるはずです
以下のファイルをテンプレートに変更していきます。
FILEBASENAME.h
// // ___FILENAME___ // ___PROJECTNAME___ // // Created by ___FULLUSERNAME___ on ___DATE___. //___COPYRIGHT___ // #ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #include "cocos2d.h" class ___FILEBASENAMEASIDENTIFIER___ : public cocos2d::Layer { private: ___FILEBASENAMEASIDENTIFIER___(); virtual ~___FILEBASENAMEASIDENTIFIER___(); public: static cocos2d::Scene* createScene(); bool init(); CREATE_FUNC(___FILEBASENAMEASIDENTIFIER___); }; #endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */
FILEBASENAME.cpp
// // ___FILENAME___ // ___PROJECTNAME___ // // Created by ___FULLUSERNAME___ on ___DATE___. //___COPYRIGHT___ // #include "___FILEBASENAME___.h" USING_NS_CC; ___FILEBASENAMEASIDENTIFIER___::___FILEBASENAMEASIDENTIFIER___() { } ___FILEBASENAMEASIDENTIFIER___::~___FILEBASENAMEASIDENTIFIER___() { } Scene* ___FILEBASENAMEASIDENTIFIER___::createScene() { auto scene = Scene::create(); auto layer = ___FILEBASENAMEASIDENTIFIER___::create(); scene->addChild(layer); return scene; } bool ___FILEBASENAMEASIDENTIFIER___::init() { if ( !Layer::init() ) return false; //Welcome Message auto windowSize = Director::getInstance()->getWinSize(); auto label = LabelTTF::create("___FILEBASENAMEASIDENTIFIER___", "Arial", 24); label->setPosition(windowSize.width / 2, windowSize.height / 2); this->addChild(label); return true; }
TemplateInfo.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> >...<key>AllowedTypes</key> >...<array> >...>...<string>public.c-plus-plus-source</string> >...</array> >...<key>DefaultCompletionName</key> >...<string>File</string> >...<key>Description</key> >...<string>Cocos2d-x用ファイルテンプレート作成</string> >...<key>Kind</key> >...<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string> >...<key>MainTemplateFile</key> >...<string>___FILEBASENAME___.cpp</string> >...<key>SortOrder</key> >...<string>2</string> >...<key>Summary</key> >...<string>A C++ class implementation with header.</string> </dict> </plist>
plistはDescriptionを変更しておきました。
さてこれでXcodeで新しく作成してみると、、、、
これで若干の面倒がなくなりました。
前からやろうやろうと思っていながらずっと手をつけていなかったのでちょうど良い機会でした。
参考にさせてきただきました。有り難うございます。
Objective-C - Xcodeのファイルテンプレートを自作する - Qiita
XCODE5、cocos2d-xでファイルテンプレート設定 - Qiita