「cocos2d-xではじめるスマートフォンゲーム開発 」を読むブログの記事の2回目です。 今回は、サンプルプロジェクトの2について、ブログに書いていきたいと思います。
![]() | cocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Android 三木 康暉 技術評論社 売り上げランキング : 6773 Amazonで詳しく見る |
cocos2dx3.3を使おう
まず前提として、[cocos2dx3.3]でないと、このサンプルが動きません。 最初はv3.4を利用していたのですが、どうしても上手く動きませんでした。 もし試される場合は注意をして下さい。
個人的に色々と検証した所、TileMapのタイルにPhysicBodyを付けた場合、Mapだけではなくレイアー自体動かなくなります。
物理エンジンのサンプル
今までcocos2dxの物理エンジンを使ったことがなかったので、このサンプルはとても新鮮でした。 詳しくは本を見ていただきたのですが、とても簡単に実装ができる感じです。
物理エンジン以外で、気になった部分を書き出します。
Follow
これは今回初めて知ったのが、Followクラスです。 [c]
//playerが目的オブジェクト this->runAction(Follow::create(player,Rect(0,0,winsize.width,winsize.height)));
[/c]
指定をした範囲内(Rect)に目的オブジェクトがある場合、それに追随して移動をします。 これを普通に実装するのはとても大変だと思います。
Tiled
BOOKQUESTからお世話になっている[Tiled]なのですが、最新バージョンだとタイルマップ自体にプロパティを設定できるみたいです。
以前はレイアー自体、もしくはオブジェクト毎にプロパティが設定でき、cocos2dxで個別に取り出すことができたのですが、タイル自体に何か属性を持たせることができるようになったんですね。 これは色々と使い方が広がりそうです。
[c] タイルのIDを取り出す auto gid = layer->getTileGIDAt(coordinate);
//タイルのプロパティを取り出す。 auto properties = _map->getPropertiesForGID(gid).asValueMap();
//タイルマップのcategoryの辺りを取り出す。 auto category = properties("category").asInt();
[/c]
CharMap
Labelクラスに以下のようなラベル作成方法があります。 [c]
auto label = Label::createWithCarMap("hoge.png",16,16,'0');
[/c]
一枚の画像に、アスキーコード順に文字を並べて利用するのですが、オリジナルなフォントを利用することができるみたいです。 アスキーコード自体よくわかっていないのですが、便利そうでした。 日本語は使えなさそうですが。
最後に
「物理エンジン」に関しては、cocos2dxのバージョンで利用できる・できないがあるので、今後どうなって行くかが楽しみです。 Unityのようなことができる感じでした。 ただ、かなり重い処理なのか、画面がカクカクに表示されていたのが気になりました。