🌻 设计文档小农场 · 野花笔记
← 全部文档/野花笔记/玩法

玩法

现行 #策划#核心玩法#自动跑跳#轻解谜 docs/野花笔记/玩法.md
一句话

兔子一直往右走。它自己会跳、自己会绕、自己会摘花。你只做一件事:看线索,选它往哪拐。

前一版把"点一下跳"当玩家的唯一操作,这一版把它也拿掉了。省下来的整只手,换成"看"。 配套文档:关卡与解谜 · 小游戏 · 收集手册 · 美术规范

野花笔记 · 演示(全程不用操作)

一、竖屏怎么装一条横版卷轴#

横版卷轴天然是横向的,竖屏(9:16)会把世界压成一条窄带。这不是缺陷,是这套设计的支点:

竖屏上 2/3 用来"看",下 1/3 用来"收"。 兔子在中间自动走,它碰过的东西直接掉进下面那本手账里,一格一格填上。

竖屏纵向区间 占屏高 放什么 为什么放这
天空 + 远景 0 ~ 46% 天空带、云、远山、树线、灌木(视差四层) 大留白给画面呼吸;也是风景带与天色的显示器
世界条(可走区) 46 ~ 78% 地形、兔子、野花、遗物、岔路牌 兔子地面线钉在 72%,视觉中心
地形剖面 78 ~ 86% 土壤、根系、石块、溪流 只有这里出现"地下",让世界有厚度
手账(收集区) 86 ~ 100% 收集格(横滑)、线索卡、进度 拇指自然落点,看的时候顺便扫一眼

1.1 具体像素(原生 1080×1920,渲染按 0.5 缩到 540×960)#

区 原生 y 渲染 y 内容
HUD 0 ~ 110 0 ~ 55 风景带名、里程、速度档
天空 + 远景 0 ~ 884 0 ~ 442 云(视差 0.06)、远山(0.12)、树线(0.28)、灌木
世界条 884 ~ 1498 442 ~ 749 花、障碍、缺口、岔路牌
兔子地面线 1382 691 钉死不动,是画面的水平基准
地形剖面 1498 ~ 1651 749 ~ 826 土壤、根系、卵石
手账条 1651 ~ 1920 826 ~ 960 收集格 + 线索卡

为什么这解决了竖屏玩横版的老问题:玩家不需要"跟得上兔子的移动"——它自己在走。 视线在上下两个区域之间来回:看上面的风景找线索 → 看下面的手账确认收获。 这个来回正好是竖屏给得了、横屏给不了的节奏。


二、核心循环#

2.1 三层#

20 秒  兔子自动走 → 自动跳过石头 → 自动摘花 → 手账 +1 格          (零操作)
60 秒  跑到岔路口 → 停下 → 翻开线索卡 → 你选一个出口              (唯一的操作)
一局   跑完 3~4 关 → 结算种子 → 回花园升级                        (单局 4~6 分钟)
一整季 30 种植物 + 10 件遗物收齐 → 换季 → 地形与谜题重排          (长期)

2.2 一局里玩家的手做了什么#

时刻 玩家的手 玩家的眼睛
0 秒 什么都不做 看兔子跑(这是主要卖点,要好看)
6 秒 什么都不做 看它自己跳过一块石头——第一次看会觉得它很机灵
12 秒 什么都不做 花自动飞进手账,格子亮起来
30 秒 停下时点一个出口 读线索卡上的观察,比对三个出口
40 秒 点第二个出口 确认走对了,手账多两格
50 秒 按住屏幕蓄力、松手(小游戏,每关 0~1 次) 看兔子跳起来敲铃铛
60 秒 什么都不做 看终点结算

一局里玩家大约动 6~12 次手:其中 6~10 次是"选方向"(解谜), 0~1 次是"按住蓄力"(小游戏)。没有一次是考反应。


三、自动前进#

项 数值 说明
基准跑速 300px/s(渲染分辨率) 和前一版一致,跳跃换算不用重算
速度档 1× / 1.5× / 2× 玩家唯一可调的东西。放在 HUD 上,随时可切
加速时的处理 动画按比例提速 不做"快进跳帧",否则动画会碎
减速 遇到岔路口自动降到 0 停下看牌,不是边走边选
为什么给速度档

玩家不想操作,不代表不想控制节奏。速度档让"今天想慢慢看风景"和 "今天想快点收完"两种心情都能满足——而且它随时可切、切了不丢东西, 符合铁律「只加永久生效、不需要回来管的决策」。


四、自动跳跃(这一版的核心新东西)#

兔子自己判断要不要跳、跳多高。玩家完全不碰。

4.1 三档判定#

档 什么时候用 起跳速度 v₀ 跳跃高度 滞空 水平距离
小跳 障碍高 ≤ 30px 380 px/s 40px 0.422s 127px
大跳 障碍高 30~72px;或缺口宽 ≥ 90px 520 px/s 75px 0.578s 173px
不跳 障碍高 ≤ 12px(矮草堆、小石子) — — — 直接跨过去

重力统一 g = 1800 px/s²。

4.2 起跳点是怎么定的(这一节决定它会不会跳空)#

起跳必须提前,而且提前的距离要和跳跃距离对得上,否则落点就是错的:

起跳距离 d 满足:跳跃水平距离 ≥ 障碍宽度 + 余量 + d
档 跳跃水平距离 障碍最大宽度 余量 起跳距离 d 折成时间
小跳 127px 44px 10px 68px 提前 0.23 秒
大跳 173px 44px 10px 112px 提前 0.37 秒
大跳(跨缺口) 173px 缺口 90~150px 10px 20px 贴边起跳
验证 计算 结果
小跳过 30px 的石头,余量 40 − 30 10px ✔
大跳过 72px 的石头,余量 75 − 72 3px ✔(够,但要贴着动画看)
大跳跨 150px 的缺口 173 − 150 23px ✔
小跳最矮的石头(12px) 40 − 12 28px,会显得跳太用力 → 交给「不跳」档
跨缺口为什么是"贴着边"起跳

缺口是地面消失,不是障碍。提前跳会在还没到缺口时就落地, 然后被迫在缺口边缘二次起跳——看起来像在犹豫,非常难看。 所以缺口用另一套判定:脚底即将离开地面的那一帧起跳。 这两套判定在代码里必须分开写,不能合并成一个"前方有东西就跳"。

[!note] 上一版这里是错的,已经修掉了 最初写的是"小跳管 ≤46px"。按小跳只能跳 40px,46px 的石头根本过不去—— 表现就是"兔子一头撞在石头上"。把阈值降到 30px 之后才有 10px 余量。 这条留在这里是因为它很容易被再犯:分档阈值必须按"跳得过"来定,不能按"感觉差不多"来定。

4.3 「自动」不等于「看起来在自动」#

兔子如果永远匀速、等间隔地跳,会显得像个机器。三条让它活起来的做法:

  1. 提前减速:接近需要大跳的障碍时,跑速先掉到 0.85 倍(0.25 秒内),起跳时恢复。看起来像"它在估距离"。
  2. 落点微调:落地后有小概率(30%)在原地补一个 8px 的小弹跳,像被自己的重量弹了一下。
  3. 没东西也跳一下:每 20 秒约一次、且前方 200px 内无障碍时,无理由地小跳一次。
第 3 条是这套设计里最便宜的好东西

零成本,但它把"跳跃"从功能变成了性格。 玩家看到兔子无缘无故蹦一下,会觉得它有情绪——这是角色塑造里性价比最高的一笔。


五、玩家要做的事(一):岔路口选方向#

完整规则、十个线索模板、选错的兜底,都在 关卡与解谜。这里只说它在主循环里的位置。

项 定案
触发 跑到关卡里的"岔路点",兔子自动停下(不是边走边选)
界面 右下角翻开一张线索卡(一行观察 + 2~3 个出口)
玩家动作 点一个出口。就一下
计时 没有。停多久都行,可以放着去干别的
选对 兔子继续走,路上多两处收集
选错 兔子走 3 秒发现是死路,自己折返,回头路上能多捡一样东西
为什么"停下再选"而不是"边走边选"

走着选等于把解谜变成了反应题(一走神就错过),那这个游戏又变回考手速了。 停下这个动作本身在说:"这里值得你想一下。" 而且它是零压力的——你完全可以拿起水杯喝完再回来点。

5.1 玩家要做的事(二):小游戏#

每关 0~1 次,跑到一处会自动停下,面板从底部推上来。目前实现的是跳铃铛: 按住屏幕蓄力、松手起跳,敲响三个不同高度的铃铛。

它是插曲不是关卡——随时可以不做,做砸了不扣任何东西。 完整设计、十条候选、以及"一跳一铃"那个坑,都在 小游戏。


六、一局的时间账#

一局 = 34 个关卡,每关 6090 秒:

段 时长 玩家在干什么
关内跑动 60~90 秒 什么都不做,看
岔路口 每关 2~3 次 停下,读卡,点一下
小游戏 每关 0~1 次 按住蓄力,松手,看它跳
关卡结算 6 秒 看手账涨了多少
合计 4 ~ 6 分钟 动手 612 次(解谜 610 + 小游戏 0~1)

和前一版(单局 60 秒)比,一局变长了。原因是零操作之后单局太短会显得没内容—— 玩家没有"我在操作"的投入感,就必须靠"我走了多远、收了什么"来给。


七、明确砍掉的东西(不许加回来)#

砍掉 为什么
玩家操作跳跃 跑动时的跳跃全自动。只有小游戏里才把跳跃交给玩家,而且没有失败、没有计时
虚拟摇杆 / 方向键 零操作的前提是没有手部输入
血条 / 死亡 / 掉坑惩罚 铁律「零失败」
解谜计时 / 限时挑战 停下想事情是这个游戏最舒服的时候,不许有时间压力。小游戏也不计时
体力 / 门票 / 冷却 铁律「不需要回来管」
每日签到 / 打卡 同时违反两条:「需要回来管」(不点就断签)+ 制造焦虑(断签会亏)。花园离线成长已经给了"回来"的理由,不需要再加一个打卡。见 循环与商业化 第五节
排行榜 / 好友攀比数值 会把"看"变成"冲"。社交只做分享发现和花园互访,不做排名
浇水 / 投喂 / 每日任务 同上
敌人 / 战斗 / BOSS 参考图的世界里没有敌人,加了就是换了个游戏
装备 / 属性数值膨胀 成长只给"更宽松",不刷新纪录
排行榜 / 分数竞速 会把"看"变成"冲"

八、开工前要补的两件事#

事项 为什么 怎么做
数值模拟器 花园价格与"第几局出现取舍"目前是推的,不是跑的 写 tools/sim/notes.mjs,照 farm.mjs 的规矩(贪心 15 次取中位数、排除暴走值、给时间口径)
关卡配表 段落、岔路、线索要有数据源,不能散在代码里 demo/data/levels.json,格式见 关卡与解谜 第二节