刚刚发布了一款名为One Stroke的俄罗斯方块益智游戏,该游戏使用纯SwiftUI和零外部依赖项开发。如果你感兴趣,那么我很想分享一下我在开发过程中的一个重要技术决策:整个声音系统都是基于生成计算的。

而不是预先打包声音文件,每个声音都在运行时通过AVAudioEngine使用正弦波生成。玩家移动过程中,每个俄罗斯方块都会奏出一段音调,由C4到E5共5个音符组成,玩家一旦开始移动,整个游戏都会根据路径自动生成独特的旋律。清零时会发出两个音符的点音,胜利时会奏出C大调的拨弦乐。这种方法使APP变得非常小巧,而且让游戏感到充满生机。

另一大挑战在于如何自定义游戏的障碍生成。如果我们使用单纯的算法生成方块,我觉得游戏会感觉枯燥无聊。因此,我写了一个反向的算法生成工具,首先生成解答路径,然后按顺序翻转方块来生成游戏中的谜题。这个生成工具还负责评估谜题难易程度,并根据实际情况判断难度,以便在玩家玩的过程中能够调整到适合自己的难度。

如果玩家需要任何的问题可以来找我,一起探讨声音系统或谜题生成策略。APP的开发人员在苹果上发布免费APP,如果需要可以尝试一下:https://apps.appledus.app/OneStroke-Line-Puzzle-Game-6760407195