ご存知かもしれませんが、Cocos2D-iphone 1.xのCCFileUtilsのすべてのクラスメソッドは、Cocos2d2.xのシングルトン[CCFileUtilssharedFileUtils]のインスタンスメソッドとして書き直されました。
[CCFileUtils fullPathFromRelativePath:... resolutionType:...]
使用する必要があります
[[CCFileUtils sharedFileUtils] fullPathFromRelativePath:maskFileName resolutionType:&resolution]
スプライトをマスキングするための拡張機能(http://www.cocos2d-iphone.org/forum/topic/30494)を作成しました。これは、CCFileUtilsを多用するため、cocos2d1.xと2.xの両方と互換性を持たせる必要があります。
これらの呼び出しをオンザフライで変換するのに役立つCC_ENABLE_DEPRECATEDフラグについて知っていますが、明確な解決策が必要です。次のように使用するためのIDを返すクラスメソッドのようなもの:
Method:
+ (id) getCCFileUtils
{
id fileUtils = [CCFileUtils class];
if ([fileUtils instancesRespondToSelector:@selector(fullPathFromRelativePath:resolutionType:)])
{
return [fileUtils sharedFileUtils];
}
else
{
return fileUtils;
}
}
Usage:
id myFileUtils = [MyClass getCCFileUtils];
[myFileUtils fullPathFromRelativePath:maskFileName resolutionType:&resolution]
}
確かに、Cocos 1.xには「セレクター'sharedFileUtils'の既知のインスタンスメソッドがありません」というエラーが表示されます。これは、そのようなセレクターがないためです。動作させるにはどのように書き直す必要がありますか?