API

final class HapticManager {
    static let shared: HapticManager

    func blockPlaced()
    func linesCleared(count: Int, isCross: Bool)
    func comboCleared(level: Int)
    func gameOver()
    func highScoreUpdated()
}

振動パターン

イベント振動
blockPlaced軽い impact (light)
linesCleared (1)medium
linesCleared (2+)heavy
linesCleared (cross)notification.success
comboCleared (level)段階的に強く
gameOvernotification.error
highScoreUpdatednotification.success

制御

@AppStorage("hapticEnabled") で有効/無効を切替。無効時は何もしない。

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成