像掌机一样展开折叠屏
我们将展开的屏幕分为上下两部分,上方显示游戏,下方放置操作按键。任天堂 DS 的触屏位于按键之间,展开时的按键位置单独保存。
折叠屏展开后的比例与普通手机差别很大。此前 N-EMU 只根据窗口是横长还是竖长来选择布局。两种布局都不适合接近正方形的内屏,因此我们为展开状态单独设计了布局。
布局参考了任天堂 DS:上方显示游戏,下方放置操作按键。无论铰链方向如何,都将屏幕分为上下两部分;半开时则按折叠位置调整分界线。
下半屏的按键遵循实机布局。L 和 R 位于折痕正下方,方向键和按键位于中间高度,Select 和 Start 位于最底部。任天堂 DS 的上屏占满上半屏,下半屏中央为 4:3 触屏。横向展开时下半屏变矮,触屏会按区域高度缩小,但不会小于两个屏幕叠放在上半屏时的尺寸。
展开时的按键位置与普通竖屏、横屏分开保存。我们在现有存储格式中增加了展开布局字段,让旧版本仍能读取竖屏和横屏布局。但旧版本无法读取展开布局,在旧版本中重新保存时可能丢失已存储的按键布局。
折叠位置和状态来自操作系统:Android 使用 Jetpack WindowManager,采用 iOS 27.1 SDK 构建的应用读取 iOS 的折叠信息。iOS 无法提供这些信息时,应用通过窗口尺寸类别判断展开状态。布局计算经过自动测试,画面也在 iOS 模拟器和 Android 模拟器中检查过。Android 使用了测试用折叠信息,真机验证仍未完成。
折叠或展开都不会中断游戏。正在按住的按键会被释放,因为屏幕切换的瞬间无法知道手指下方是什么。
相关开发故事
- 开发故事v1.1.1封闭 Beta 测试
为什么在书本式折叠屏上放大任天堂 DS 画面
像拿书一样握持折叠屏时,旧布局中的任天堂 DS 触摸屏会变小。我们把两个屏幕移到中央、按键移到两侧,扩大了可触摸区域。
- 开发故事v1.0.8封闭 Beta 测试
为什么连接手柄后要扩大游戏画面
触控按键隐藏后,游戏画面仍保持原来的大小。我们让游戏利用空出的空间,并让 DS 双屏布局适应当前的操作方式。
- 开发故事v0.2.0早期开发
把多个机种放进一个应用
连接多个模拟器核心,让不同机种的游戏也能在同一个游戏库中选择和管理存档。