「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」に従い、サンプルゲームを作成してみます。
追加するソースは、他プラットフォームでのコンパイルも考慮して、Classフォルダの下に作成するのがいいみたいです。
なのですが「クラスの追加」だとプロジェクト直下に追加されてしまうようでした。
「新しい項目の追加」なら、保存場所指定できるようなので「*.cpp」「*.h」を別箇で追加してあげました。
ファイル追加して、背景表示ロジックを入れて、コンパイル。
すると、
1 2 3 | 3>..\Classes\GameScene.cpp(37): fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。 '#include "pch.h"' をソースに追加しましたか? |
というエラーメッセージがでてコンパイル失敗。(それ以外のWarningも出まくってましたが。)
プリコンパイルヘッダpchは、使用しないようにする必要があるみたいです。プロジェクトのプロパティを開いて「C/C++」のプリコンパイル済みヘッダーで「プリコンパイル済みヘッダーを使用しない」に設定。
これでコンパイル成功。エミュレータで実行してみます。
出た出た。ブロック表示ロジックも追加。
いい感じですね。
画像リソースは「(プロジェクトフォルダ)\Resources\ 」に入れておけば参照できました。プロジェクトのAssetsへの追加は必要なかったです。この後、ショップに出すためにパッケージングする場合には、どうなるのかは確認しないといけないですね。
ここまで動いたので、ちょっと道をそれて、サーバからのデータ取得もやっておこうと思います。画像データ取得して、ブロック画像に使用、とかやってみたいですね。
このあたりを参考にしました。
Cocos2d-xでサーバー上の画像を取得する方法
http://taberenai-resipi.blogspot.jp/2013/11/cocos2d-x.html
CCHttpRequestを使って、コールバック関数を設定してリクエストを投げればよいようです。
ある程度組み込んで、コンパイルしてみると、リンクが通らない。
1 2 3 4 | 3> ライブラリ C:\cocos2d-x-2.2.1\projects\HelloProject\proj.winrt\WinRT\Win32\Debug\HelloProject_2013\HelloProject_2013.lib とオブジェクト C:\cocos2d-x-2.2.1\projects\HelloProject\proj.winrt\WinRT\Win32\Debug\HelloProject_2013\HelloProject_2013.exp を作成中 3>BlockResourceManager.obj : error LNK2001: 外部シンボル "" public: void __thiscall cocos2d::extension::CCHttpClient::send(class cocos2d::extension::CCHttpRequest *) " (?send@CCHttpClient@extension@cocos2d@@QAEXPAVCCHttpRequest@23@@Z)" は未解決です。 3>BlockResourceManager.obj : error LNK2001: 外部シンボル "" public: static class cocos2d::extension::CCHttpClient * __cdecl cocos2d::extension::CCHttpClient::getInstance(void) " (?getInstance@CCHttpClient@extension@cocos2d@@SAPAV123@XZ)" は未解決です。 3>C:\cocos2d-x-2.2.1\projects\HelloProject\proj.winrt\WinRT\Win32\Debug\HelloProject_2013\HelloProject_2013.exe : fatal error LNK1120: 2 件の未解決の外部参照 |
未解決の外部参照ということはライブラリが足りないのか?そこで、CCHttpClient.cppのソースを見てみると…
1 2 3 4 5 | #include "HttpClient.h" // #include "platform/CCThread.h" #if (CC_TARGET_PLATFORM != CC_PLATFORM_WINRT) && (CC_TARGET_PLATFORM != CC_PLATFORM_WP8) |
ギャー!WindowdsRTとWindowPhone8は未対応だったー!ptherd.hが使えないから、ということらしい…。アリャリャ。うーん、これは現時点では、HTTP通信に関しては手詰まりだ…。
念のため、V3.0 Alpha1のほうも確認してみたのですが、こちらはWindowsRTアプリ対応は全くされていない状態でした。残念。