0

几年前,我有一个“iPhone是控制器,通过Apple TV和Air Play在电视上显示游戏画面”的项目慢慢进行。这就像一个太空射击迷宫游戏,除了没有射击,目标是驾驶一艘宇宙飞船找到老板(这是我当时 1 岁左右的儿子的照片)。就像没有 NES 的 NES 游戏。

现在,当我在一年左右的时间里第一次运行这些东西时,基本上使用 SpriteKit 场景的控制器在左右方向倾斜 90 度。“OR”取决于应用程序启动时我的 iPhone 6 Plus 所处的方向。所以游戏现在只占据了电视屏幕的一半——因为它是倾斜的——即使是外行也能看出发生了什么可疑的事情,因为文本不是你现在正在阅读的正常水平文本,它是倾斜的。

最近有什么变化吗,比如 iOS 8 以及连接额外的 UIScreen:s 是如何工作的?我很少接触这个项目,所以我大部分时间都忘记了一切是如何工作的,我在长时间的中断后再次使用它。任何人都经历过这个并且知道从哪里开始挖掘?

4

1 回答 1

0

四处寻找,似乎应用程序本身和手持设备/控制器(iPhone)上显示的内容必须/应该只是纵向的。如果应用程序以横向模式启动,电视上的屏幕显示也将“倾斜”,而电视本身不会倾斜......并且事情会出现故障。我仅通过单击目标-> 设备方向复选框来设置纵向。

这有点不受欢迎,因为普通的视频游戏控制器处于横向位置,这是我一直使用的方式。我不知道是什么让这项工作有所不同,也许是 iPhone 6 Plus 在主屏幕级别支持横向,或者可能是 iOS 8 或其他。

所以这里基本上有两种选择。

  • 将控制器设计为纵向,但在设计中已经将所有东西都倾斜了。左下方的转向十字必须放在左上方,向右倾斜 90 度以获得假的“横向”设置。可能比对电视屏幕做同样的事情更痛苦。

  • 继续为控制器使用真实横向模式,并通过设置电视控制器视图变换的新旋转变换来使用一些反倾斜旋转。(我试过这个,好像也需要翻译,所以我放弃了。还是可以的。)

更新:我找到了一个更好的解决方案:

  1. 允许应用程序的横向向右、横向向左和纵向旋转。(按照这个顺序,如果您打算在横向模式下启动控制器 - 但纵向必须在那里。)

  2. 在控制电视上发生的事情的 UIViewController 的子类中,返回UIInterfaceOrientationMaskPortrait. supportedInterfaceOrientations电视控制器必须在“纵向”模式下运行,对于电视控制器来说,这意味着“默认”模式,这对眼睛来说就像正常的横向模式。一个景观电视控制器意味着一个倾斜的视图,我们不希望这样。是的,这很奇怪,但也许合乎逻辑。哦,在手控制器的 UIViewController 的子类中,我返回UIInterfaceOrientationMaskLandscape是为了不支持纵向模式。用户可能会以纵向模式启动控制器(尤其是在除 6 Plus 以外的任何 iPhone 上),如果我们支持,他/她可能会认为控制器只能在纵向模式下使用,这在玩视频游戏时非常不方便。

于 2015-08-17T02:50:32.430 回答