Cocos2d-x 3.0 正式版の開発環境構築手順

Cocos2d-x 3.0 final(正式版)が出て数週間が経ってしまいましたが、ようやく開発環境手順をまとめました。

ぎじゅつめも | Cocos2d-x開発環境の構築

ついでに 3.0 rc0 のまま放置していたローカルのプロジェクトをバージョンアップしてみました。
特にこれといった問題も出ずバージョンアップ完了。
細かい動作は見ていませんが、とりあえずちゃんと動いている様子。よかったよかった。

Cocos2d-x 3.0 正式版リリース

ようやくCocos2d-x 3.0の正式版がリリースされたようです。

http://www.cocos2d-x.org/news/215

rc2がつい先日リリースされたばかりだったのでもうしばらくかかるかと思いましたが、思ったよりも早かったですね。
見た感じrc2からの変更点はバグ変更のみですかね。

自宅の環境はrc0のままなので、早いうちに更新します。
早速ダウンロード中・・・

Cocos2d-x 3.0 rc1 リリース

Cocos2d-x 3.0 rc1 がリリースされました。

http://www.cocos2d-x.org/news/203

どうやら、重大なバグなどが無ければ1週間後に安定版(正式版)をリリースする予定の模様。

rc0からの変更点は、バグ修正がほとんどのようですね。
安定版が1週間後を予定していることを考えると、現在rc0で動かしているプロジェクトをrc1に更新するメリットはそんなにないかな・・・。

というわけで、rc1は適用せずに安定版を待ちます!

(C++11)テンプレート使用時の primary-expression token なビルドエラー対応方法メモ

C++11のテンプレートメソッド内で別のテンプレートを呼び出している箇所で、特定のコンパイラでコンパイル時、
error: expected primary-expression before ‘>’ token
なエラーに悩んでしまったので解決方法をメモします。
今まで見たことないので多分C++11からの仕様だと思います。

コードは以下のような感じになります。


// テンプレートなクラス
template<typename T1>
class TemplateClass
{
public:
	template<typename T2> T2 func() { return T2(); }
};

// テンプレートな関数
template<typename T1, typename T2>
void templateFunction()
{
	TemplateClass<T1>	t;
	t.func<T2>();		// < ここでエラーがでます
}

// templateFunctionをコール
void main()
{
	templateFunction<int,float>();
}

上記のコードをビルドするとこんなエラーが出ます。

hoge.cpp: In function 'void templateFunction()':
hoge.cpp:xxx:xxx: error: expected primary-expression before '>' token
   t.func<T2>();
            ^
hoge.cpp:xxx:xxx: error: expected primary-expression before ')' token
   t.func<T2>();
              ^

VisualStudioでは出ずに、gccで出ます。
templateFunction()内の

t.func<T2>();

を以下のように書き換えるとビルドエラーが解消されます。

t.template func<T2>();

Cocos2d-x 3.0 rc0 の開発環境構築手順

Cocos2d-x 3.0 rc0 がリリースされました。
beta2から、そこまで大きな変更は多分ないと思いますが、セットアップ方法やプロジェクト新規作成方法の手順などが少し変わりました。

とりあえずHelloWorldまでの手順をWindows版、Android版共にWikiにまとめました。

ぎじゅつめも – Cocos2d-x開発環境の構築

setup.pyの導入により、前よりわかりやすくなったかもしれませんね。

さて、beta2で作成したプロジェクトをrc0に対応しないと・・・

静的コンストラクタ

クラスの静的コンストラクタを実現する方法を紹介します。
起動時に一度だけ行いたい処理を書く時などに便利です。
ただし、他のstaticなオブジェクトと同じく、初期化順番は保証されない点は注意してください。

ヘッダはこんな感じ。

class Hoge
{
private:
	//! 静的コンストラクタ用のprivateな構造体
	struct Construct
	{
		Construct()
		{
			// ここに初期化処理を書きます
			sm_hoge = 0;
		}
	};
private:
	static Construct	sm_construct;	//!< 静的コンストラクタ
	static int			sm_hoge;
};

cpp側はこんな感じになります。

Hoge::Construct	Hoge::sm_construct;
int				Hoge::sm_hoge = 0;

ご覧のとおり、今回のパターンだとsm_hogeはもともと0で初期化しているので静的コンストラクタで処理している内容に意味はなかったりします。

Evernoteをコードで期間延長する方法

h

『EVERNOTE プレミアムパック 3年版』を購入したのですが、Evernote webのアカウントのところみてもいまいち延長方法がわからず。
ググってみたところ、サイトからアクセスしてコードを入力する必要があるそうです。
以下、手順です。

①まずココにアクセスします。
Evernote | ソースネクストユーザーの皆さん、Evernoteへようこそ!
②コードを入力します。
③ログインします。
④コードの登録完了。

どうやら、コードを入力してもそのまま期間がダイレクトに延長されるのではなく、一旦Evernoteポイントというポイントが貯まる仕組みに変わったようです。
今回購入した『EVERNOTE プレミアムパック 3年版』は、3年分なので『360』ポイントが貯まっていました。
ポイントのままだと、延長処理がされていないので、アカウントのポイントの所から、ポイントを消費してプレミアムの延長を選択しましょう。

早速ポイントのページを確認してみると、1ヶ月は10ポイントで12ヶ月だと120ポイントだそうで・・・。
うーん、これだと1ヶ月刻みで使うタイミングで延長したほうがお得な気がしなくもないような(汗
1ヶ月11ポイントにするとか、12ヶ月は110ポイントにするとかしたほうがいいんではなかろうかと思った今日このごろでした。

Cocos2d-xプロジェクトをVisualStudioでビルドした際に出る警告 C4819 の解消方法

VisualStudio2013で、Cocos2d-xのプロジェクトをビルドすると CCSAXParser.h 等で、
warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
な警告が出てしまいます。

CCSAXParser.h は、utf8形式のエンコードなのですが、『BOM』が付いていません。
VisualStudioのutf8はBOM付きじゃないとダメだという噂です。
というわけなので、BOMを付けて保存し直しましょう。

VisualStudio2013上で、エンコードの変更ができます。

CCSAXParser.hを開いてからツールバーのファイル>保存オプションの詳細設定
を選択します。
エンコードを
Unicode(UTF-8 シグネチャ付き) – コードページ65001
にしてOK。ファイルを保存します。これで、utf8のBOM付きで保存されます。

エンコード変更の必要があったファイルは
CCSAXParser.cpp
CCSAXParser.h
CCScale9Sprite.h
CCTMXXMLParser.cpp
MciPlayer.h (これはすでに文字化けしていました)
CCFont.cpp (これはエンコード変更するとwarning C4566: ユニバーサル文字名 ‘\u00A1’ によって表示されている文字は、現在のコード ページ (932) で表示できません な警告が新たに発生してしまうので、スルーしました)
plane.c
vec3.c
になります。

この状態でリビルドすれば、警告がなくなっているのが確認できると思います。

*Cocos2d-xのバージョンは 3.0 beta2 です。

CocoStudioのUI Editorで出力したUIを再生する

前回のAnimation Editorに続き、
Cocos2d-x 3.0 beta2 で
CocoStudioのUI Editorで出力したアニメーションを再生する手順をまとめました。
windows版、android版で再生しています。
CocoStudioのUI Editorで出力したUIを再生する | ぎじゅつめも

CocoStudioのAnimation Editorで出力したアニメーションを再生する

Cocos2d-x 3.0 beta2 で
CocoStudioのAnimation Editorで出力したアニメーションを再生する手順をまとめました。
windows版、android版で再生しています。
CocoStudioのAnimation Editorで出力したアニメーションを再生する | ぎじゅつめも