背景
v2.2.x からプロジェクト作成のやりかたが代わって
テンプレートをインストールする方法ではなくなってしまいました。
問題
ファイルを作成する際に、XCODEの通常のC++ Class
テンプレートをつかって行うと、
その都度、cocos2d-x用に書き換えるのがめんどくさいのです
対応
ということで、自分でXCODEのファイル作成テンプレートをつくります。
作り方
詳細な手順はshu223さんのXcodeのファイルテンプレートを自作するがとても参考になります。
さっくりといきます。
1.ベースとなるテンプレート
XCODEにもともとあるC++のテンプレート利用します
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/C and C++
ここにあるので、これをコピーします。
今回僕は、classだけでよかったので、そのフォルダの中のC++ Class.xctemplate
だけにしました
2.テンプレート設置
~/Library/Developer/Xcode/Templates/File Templates
最初にコピーしたものをこっちにペーストします。
C and C++
ごとまるっとコピーしてきた場合は、cocos2dx用だとわかる用にリネームした方がいいかもです
僕のようにC++ Class.xctemplate
をコピーした場合は、既存の適当なフォルダ内にペーストするか、
自分でフォルダを作成してその中にペーストする感じで行きます
僕はcocos2d-x v2.2.x
というフォルダを作ってその中にペーストしました。
3.テンプレート編集
ここは僕も詳細はちゃんと把握してないので割愛。
兎角、この中を編集すると自分好みのテンプレートができるようになりますので。
最初に紹介したshu223さんのとこみると、感じがつかめます
ソース
僕のファイルテンプレートをここにおいておきますので、使いたい方はどうぞ。
落として、~/Library/Developer/Xcode/Templates/File Templates
にペーストするとだけですかね
同名フォルダがある場合は、バックアップをとるなり、リネームするなり…復元できるようにするのをオススメします
追記(2014.02.18)
cocos2d-x v.3.0(β2)用のファイルテンプレーも追加
クラス名にプレフィックスがつかなくなったってことでそこら辺を中心に修正
置き場所は同じなので、使ってやっても良いよという方はどうぞ
補足
この番号振ってる箇所が連動してるので、Xcode上の表示を自分好みにしたいときは、フォルダ名を良い感じに変更すると良いでしょう
継承クラスによるテンプレートの切り分けもちょこっと触れておきます
フォルダ内に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>Options</key>
<array>
<dict>
<key>Default</key>
<string>CCNode</string>
<key>Description</key>
<string>継承するクラスを入力してね!</string>
<key>Identifier</key>
<string>cocos2DXSubclass</string>
<key>Name</key>
<string>継承クラス:</string>
<key>Required</key>
<string>YES</string>
<key>Type</key>
<string>combo</string>
<key>Values</key>
<array>
<string>CCNode</string>
<string>CCLayer</string>
</array>
</dict>
</array>
<key>AllowedTypes</key>
<array>
<string>public.c-plus-plus-source</string>
</array>
<key>DefaultCompletionName</key>
<string>MyCocos2DXClass</string>
<key>Description</key>
<string>cocos2dx用に.h/.cppを作成します</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>cocos2dx用に.h/.cppを作成します</string>
</dict>
</plist>
こんなかんじになっていますが、このなかの
<array>
<string>CCNode</string>
<string>CCLayer</string>
</array>
ここに新に継承クラスを追記。例えばCCSprite
とか
そしてテンプレートがおいてあるフォルダ内にCCSprite
フォルダを作成して、その中に他と同じようにテンプレートファイルを設置して編集。
そうすると、XCODEでファイル作成→継承をCCSprite
とやるとそのテンプレートが適用されるようになります
そうすると最終的には下記の様な構成になります。
以上です!
File Templates
└ cocos2d-x v2.2.x ←XCode上のファイル追加の左ペインの名前になります
└ Cocos2d-x Class.xctemplate ←XCodeで選択するテンプレートの名前になります
├ TemplateInfo.plist ←テンプレートの諸々設定
├ TemplateIcon.icns ←XCodeで表示されるアイコン
├ CCNode ←CCNodeを継承した場合に適用される
│ ├ ___FILEBASENAME___.cpp
│ └ ___FILEBASENAME___.h
├ CCLayer ←CCLayerを継承した場合に適用される
│ ├ ___FILEBASENAME___.cpp
│ └ ___FILEBASENAME___.h
└ CCSprite ←CCSpriteを継承した場合に適用される
├ ___FILEBASENAME___.cpp
└ ___FILEBASENAME___.h