0

私は cocos2d でゲームに取り組んでいます: iOS デバイスに応じて異なる画像を読み込みたいです。私がすでに使用しているメソッドの 1 つは、デバイスをチェックしてから同じ ccsprite オブジェクトにイメージを追加する init メソッドにあります。

しかし、それは非常に長く、管理が困難です。私がすべきことは、すべてのデバイスのイメージを同じ名前で作成し、それらを異なるフォルダーに配置することです。アプリケーションの開始時にデバイスを確認し、iOS デバイスに一致するパスを設定するだけです。例えば

画像/iphone/abc.png
画像/iPad/abs.png

異なるパスから子を追加する方法は?

4

2 に答える 2

3

cocos2d 2.0 を使用している場合は、-ipad サフィックスが付いています。実際、-hd、-ipad、-ipadhd があります。

于 2012-10-15T14:10:49.727 に答える
0

実行時にイメージを選択できます。

UIImage *image;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
   image = // Load iPad image here
else
   image = // Load iPhone image here

UIImageもちろん、これはコードのあらゆる場所で使用すると面倒なので、ヘルパー関数、カテゴリ、またはマクロを追加するだけでよいでしょう。つまり、

+(UIImage *)deviceDependentImageWithName:(NSString *)name {
   return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? /* iPadImage */ : /* iPhoneImage */;
}

後者の方法は、別のフォルダーに配置するなどの命名規則に従う場合に特に簡単に機能します (これらのディレクトリがディストリビューションに存在し、デフォルトのように最上位のディレクトリにコピーされるだけではないことを確認してください)。「-iPhone」または「-iPad」を追加すると、ディレクトリを気にせずに同様に機能する場合があります。

于 2012-10-15T12:38:21.277 に答える