LoginSignup
19

More than 5 years have passed since last update.

XCODE5、cocos2d-xでファイルテンプレート設定

Last updated at Posted at 2013-12-09

背景

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_template.png
最終的にはこんな感じ

Xcode上はこんな感じになるはず…です
xcode_template2.png

この番号振ってる箇所が連動してるので、Xcode上の表示を自分好みにしたいときは、フォルダ名を良い感じに変更すると良いでしょう

継承クラスによるテンプレートの切り分けもちょこっと触れておきます
フォルダ内にTemplateInfo.plistというものがあるので、そちらに設定していきます。
今回は僕のやつを例に…

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>

こんなかんじになっていますが、このなかの

Options
<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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19