SuperAPI AI 工具集

iphone-duo-games

编程与开发

查看项目

更新于 10-16 06:48

技能介绍

用途:为 iPhone Duo 折叠屏适配游戏。游戏不受多数设备 UI 规范约束,但必须应对屏幕尺寸与形状在运行中随开合、折叠、旋转而变化的问题,否则会出现黑边、拉伸或控件跑出屏幕。

主要能力与要求:可以锁定竖屏或横屏,但不能因此假定固定尺寸——设备有两块不同尺寸的显示屏,游戏会在会话中途切换;内屏不遵循 supported interface orientations,方向锁在内屏会失效;UIRequiresFullScreen 同样如此,开合时仍会改变尺寸。视口形状变化时优先改变宽高比(扩展相机视锥、放宽可见视野);若设计确实无法支持可变宽高比,可用带美术的黑边或竖边,但要用背景或场景美术填充,避免纯黑边。缩放世界时不要把 UI 一起等比缩放,HUD 文字与触控目标应按点保持接近恒定的物理尺寸。

折痕与控件:半折叠时内屏中部弯曲区域更难看清和点击,虚拟摇杆、开火键、拖拽目标落在折痕上会不可靠。需查询保留区域,让交互控件避开 division region(折痕),并把触控控件锚定到外侧边缘而非居中;同时注意遮挡区域(外屏前摄始终存在,内屏摄像头激活时出现)。纯视觉、非交互内容可以跨折痕。

姿态与分屏:值得考虑桌面/笔记本姿态(下半为触控面、上半为观看面)与帐篷姿态(免手持,适合放置、观战、氛围或回合制游戏),但应视为加分项,不要把功能绑定到用户可能不用的姿态。游戏同样参与 Split View,可能只占内屏一半,需保证仍能正确渲染且控件不掉出边缘。

铰链输入:铰链角度可通过 SwiftUI 的 onHingeChange 或 UIKit 的 UIHingeInteraction 获取连续值(粗略状态加角度),可桥接到游戏引擎用于特效、相机视差或机制;需处理铰链为 nil 的情况(同一二进制也运行在非折叠 iPhone 上),且不能作为执行操作的唯一方式。

引擎注意事项:Unity 用 Screen.safeArea 并在运行时处理分辨率变化,而非在 Start() 中只读一次;Unreal 用 safe zone / title safe 并在视口变化时重新求值;Godot 用安全区 API 加能容忍宽高比变化的拉伸模式;SpriteKit / Metal 通过视图获得 resize,重点是让场景响应而非假定初始绘制尺寸。保留区域与铰链角度是 iOS 27.1 API,引擎层无对应实现,需要原生插件桥接。

检查清单:把视口变化当作实时事件处理;无论方向锁如何都要在每种姿态填满屏幕;优先改变宽高比,若加黑边则用美术填充;HUD 文字与触控目标在各姿态保持一致的物理尺寸;交互控件锚定边缘并避开折痕;验证 Split View 下仍正确渲染;在 Device Hub 的 iPhone Duo 模拟器中测试打开、闭合、折叠、旋转等每种姿态。