0

数年前から「iPhoneをコントローラーに、ゲーム画面をApple TVとAir Play経由でテレビに表示」プロジェクトがゆっくり進んでいます。スペース シューターの迷路のようなゲームですが、射撃がなく、目的は宇宙船を操縦してボスを見つけることです (これは当時 1 歳の息子の写真です)。NES のない NES ゲームのように。

約 1 年ぶりに実行すると、基本的に SpriteKit シーンを使用しているコントローラーが右または左方向に 90 度傾いています。「OR」は、アプリの起動時に iPhone 6 Plus がどの方向にあるかによって異なります。そのため、ゲームは現在、テレビ画面の半分しか占めていません - 画面が傾いているためです - また、テキストが現在読んでいる通常の横長のテキストではなく、傾いているため、素人でも何か怪しいことが起こっていることがわかります。

iOS 8 や、追加の UIScreen:s の接続方法など、最近何か変更がありましたか? このプロジェクトに触れることはめったにないので、長い休止期間の後に再び何かを行うと、ほとんどの場合、すべてがどのように機能するかを忘れてしまいます。誰でもこれを経験し、どこから掘り始めるべきか知っていますか?

4

1 に答える 1

0

調べてみると、アプリ自体とハンドヘルド デバイス/コントローラー (iPhone) に表示されるものは、縦向きのみである必要があるようです。アプリを横向きで起動すると、テレビ自体が傾いているのではなく、テレビの画面表示も「傾いて」しまい… 調子が狂ってしまいます。ターゲット->デバイスの向きのチェックボックスをクリックするだけで縦向きに設定しました。

これは、通常のビデオ ゲーム コントローラーが横向きの位置に保持され、これが私がいつも使用していた方法であるため、一種の望ましくないものです。何がこの動作の違いを生んだのかはわかりません。おそらく、ホーム画面レベルでランドスケープをサポートする iPhone 6 Plus か、iOS 8 か何かでしょう。

したがって、ここには基本的に 2 つのオプションがあります。

  • コントローラーを縦向きにデザインしますが、すでにデザインにすべてを傾けています。左下のステアリング クロスは左上に配置し、右に 90 度傾けて偽の「横向き右」設定にする必要があります。代わりに、テレビ画面に対して同じことを行うよりも苦痛が少ないかもしれません.

  • コントローラのリアル ランドスケープ モードの使用を続行し、テレビ コントローラのビューの変換の新しい回転変換を設定することで、アンチチルト回転を使用します。(やってみましたが、翻訳も必要なようで諦めました。まだ動くかもしれません。)

更新:より良い解決策を見つけました:

  1. アプリの横向き右、横向き左、縦向き回転を許可します。(この順序で、コントローラを横向きモードで起動する場合 - ただし、縦向きにする必要があります。)

  2. In the subclass of UIViewController that controls what's going on upon your tv, return UIInterfaceOrientationMaskPortrait in supportedInterfaceOrientations. The tv controller must be run in "portrait" mode, which for a tv controller would mean the "default" mode, which for the eye looks like the normal landscapish mode. A landscaped tv controller would mean a tilted view, and we don't want that. Yes this is weird but maybe logical. Oh, and in the subclass of UIViewController for the hand controller, I return UIInterfaceOrientationMaskLandscape so as not to support portrait mode. The user likely launches the controller in portrait mode (especially on any iPhone other than 6 Plus) and if we supported that he/she would maybe think the controller can only be used in portrait mode, and that is very inconvenient when playing video games.

于 2015-08-17T02:50:32.430 に答える