2

Everyplay を Cocos2d Game に統合しています。私のゲームは、横方向のみをサポートしています。iPadではすべてがうまくいきます。しかし、iPhone(iOS6)でテストすると、「[[Everyplay sharedInstance] showEveryplay]」を呼び出すと、次のように例外がスローされます。

iOS6で向きのメカニズムが変更されたことを知っているので、このメソッドを追加します:

-(BOOL)shouldAutorotate{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
        return UIInterfaceOrientationMaskAllButUpsideDown;
}

次に、「[[Everyplay sharedInstance] showEveryplay]」は例外なく機能しますが、私のゲームは、私が望んでいない縦向きもサポートしています。

ゲームでランドスケープのみをサポートしたいが、「[[Everyplay sharedInstance] showEveryplay]」が例外なく動作するようにするにはどうすればよいですか?

4

2 に答える 2

2

問題を解決する方法は 2 つあります。

オプション1:

UIInterfaceOrientationPortrait、UIInterfaceOrientationLandscapeLeft、UIInterfaceOrientationLandscapeRight、UIInterfaceOrientationPortraitUpsideDown の項目を含む UISupportedInterfaceOrientations 配列をゲームの info.plist に追加します。プロジェクトの概要ページからすべてのサポートされているインターフェイスの向きを確認するか、info.plist ファイルを手動で編集することにより、xCode から簡単にこれを行うことができます。

オプション 2:

次のメソッドをアプリケーションの AppDelegate.m ファイルに追加します。

// IOS 6

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
  return UIInterfaceOrientationMaskAll;
}

どちらの場合も、横向きのみの向き処理コードをゲームのメイン UIViewController に追加したことを確認する必要があります。

// IOS 5

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
  return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

// IOS 6

- (BOOL)shouldAutorotate {
   return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
  return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
于 2013-08-13T06:06:10.573 に答える
0

iPhone では、Everyplay の Web ビューは常にポートレート モードですが、iPad では Web ビューは両方をサポートしています。録画は、ビデオ プレーヤーと同様に両方のモードをサポートします。近い将来、iPhone 解像度のランドスケープ モードも更新する可能性がありますが、このタスクが完了する前に再設計が必要になるでしょう。

于 2013-05-13T10:40:17.760 に答える