cocos2dのtmxファイルの1レイヤー1タイルセット制限

AIRで作っていたブロック崩しシューティングゲームを放っておいて、
最近はcocos2d-iphoneやTiledMapEditorを触っていました。

今回、TiledMapEditorを使っていてはまったことの一つがタイトルの件でした。
1つのレイヤーに複数のタイルセット画像を用いていたのですが、そうすると実行時に
TMX: Only 1 tilset per layer is supported'
というエラーメッセージが吐かれます。
で、タイルの読み込みあるいは表示のどちらが失敗してるか調べてませんがともかく表示に失敗します。
これはおそらくCocos2dの仕様なのですが、ドキュメントは確認していません。
cocos2d-iphoneのバージョンは2.0.0です。


これの対処方法はまさにそのまんまというか、1レイヤーにつかうタイルセットを1枚にするしかありません。
使う画像は一枚の画像ファイルにまとめておけ、ということですね。
逆に、一枚のタイルセットを複数のレイヤーで使用する分には問題ありません。


僕は、同じタイル画像を複数持って、それらに別々のタイルプロパティの値を持たせる、ということがやりたかったので、1レイヤーに同じタイルセット画像を名前を変えて複数使おうとして上記のエラーにはまりました。
なぜ一枚のタイルセット画像に同じタイル画像を複数含めなかったのかというと、タイルセット画像の作成に用いているTexturePackerがそれを許さなかったからです。
TexturePackerは、たとえファイル名が違っていても、データ上全く同じ画像だと、複数並べてくれません。
バージョンは現在最新の3.0.4です。
ここら辺は、どなたか解決策をご存知でしたら教えて下さい。


後、現在はまっているのが、作成したcocos2dアプリがなぜか横画面表示できないという問題です。
info.plistのSupported Interface OrientationをPortraitにしても、
AppDelegate.mのshouldAutorotateToInterfaceOrientationを

  • (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

にしても全く聞きません。
というかデバッグで追いましたが、shouldAutorotateToInterfaceOrientationがそもそも全く呼ばれないので上記の意味がありません。
cocos2d-iphone 2.0.0のテンプレートそのまんまのHelloWorldアプリは、横画面表示でHelloWorldLayerが出てきて、そこから大きく変えていないのに、なぜ必ず縦画面で表示されるのか不思議でなりません。

ちなみに、以下書籍のサンプル(和書じゃないですよ!洋書の最新版のサンプルです)でも同じ問題が発生しますんで、自分のソースのせいではないと思います。
何かご存知の方がいたら教えて下さい。

Learn cocos2d 2: Game Development for iOS

Learn cocos2d 2: Game Development for iOS