[cocos2d] CCLayerColorをデバイスのAutorotateに対応させる

cocos2dで画面の背景色を設定していた時につまづいたのでメモ。当方の環境はcocos2d v2.0。

問題

cocos2dで画面の背景色を設定するときにはCCLayerColorクラスを使います。

以下がそのコード例。画面の背景色を白色に設定しています。

しかしこのコード、デバイスのAutorotateを有効にしている場合に問題が発生します。

以下はiPadシミュレーターのスクリーンショット。今のところ、背景色は正しく設定されています。

しかし、ここでデバイスを横向きに回転させると右側に謎の余白が!

どうやらデバイスの回転時に、CCLayerColorのサイズが横向き用に自動的に調整されてないことが原因みたい。

解決方法

少し調べたところ、以下のように、CCLayerColorのサイズを、デバイスの長辺のピクセル数を使って指定すれば解決できそう。(なんだか力技のような気もするけど。)

デバイスが縦向きでも横向きでも画面全体がすっぽり収まるようにCCLayerColorのサイズを設定することで、無事以下のようにデバイスを横向きに回転しても正しく背景色が表示されるようになりました。

めでたしめでたし!