Skip to content

zxzin/-

Repository files navigation

叶子 · 双视角编年史(Vite + React + Tailwind + TS)

一键运行:

npm install
npm run dev

浏览器访问 http://localhost:5173 即可体验。

玩法与结构

  • 故事:8 章章回体(三幕),双视角切换(她视角 / 我视角),每章固定节奏:章头旁白 → 她视角 → 我视角 → 2 个生活感轻选择 → 1 次“誓言措辞关卡”(误会澄清)→ 章尾旁白 → 下一章。
  • 数值:closeness 靠近度、misunderstanding 误会值,范围 0–100,所有选择与澄清关卡只改这两条。
  • 结局:根据靠近/误会自动分流到 4 个结局(true/good/bittersweet/bad),结局 CG 会展示。
  • 节奏关键词:命运点火(CH1–3)→ 远征与誓言(CH4–6)→ 审判与归档(CH7–8)。主题是“时机也许不对,但我们依然勇敢并肩”。

剧情脚本(src/content/story.zh.json

  • 章节字段:id / title / entry / totalSteps / nodes[]
  • 节点类型:
    • narrate:旁白,字段 text
    • say:对白,字段 speakertext
    • choice:分支,字段 promptoptions[],每个选项可带 closenessChangemisunderstandingChange
    • misunderstandingChallenge:误会澄清玩法,字段 heardVersionintendedVersionoptions[](三种措辞风格,带数值变化与反馈)
    • set:设置 flags 或数值
    • goto:跳转到指定章节/节点
    • endingGate:根据当前靠近/误会自动分流到结局节点
    • ending:结局节点,字段 endingTypetitletext、可选 cg
  • 资源引用:节点可填 bgcgsprites(立绘数组)、props(道具数组)。

资产放置与自动扫描

  • 全部图片放 src/图片/ 目录,文件名前可带前缀“已移除背景的”(会自动忽略)。
  • 自动分类规则(src/assets/autoAssets.ts):
    • ui_* → UI 背景(title/menu/chapter/select/save_load/settings)
    • bg_* → 背景
    • cg_* → CG / 结局 CG
    • sprite_f_* / sprite_m_* → 立绘(前缀会被去掉,key 形如 f_calm / m_companion
    • prop_* → 道具
  • 解析:resolveAsset(type, key)(见 src/engine/storyAssetResolver.ts)自动取 URL;缺失资源在 DEV 会 console.warn。
  • DEV 自检:控制台会输出 BG/CG/立绘/道具是否存在且被剧情引用,方便检查遗漏。

页面与组件

  • src/pages/Title.tsx:标题/菜单页(title_bg_16x9 + menu_bg_16x9)
  • src/pages/ChapterSelect.tsx:章节选择(chapter_select_bg_16x9)
  • src/pages/Game.tsx:主玩法页,支持对话、选择、误会澄清、结局展示
  • src/components/HUD.tsx:靠近度/误会值条、章节进度、视角标记
  • src/components/MisunderstandingChallenge.tsx:两句对照 + 三选一措辞 + 数值反馈
  • src/components/SaveLoadModal.tsx:存档/读档(save_load_bg_16x9)
  • src/components/SettingsModal.tsx:设置面板(settings_bg_16x9)
  • src/components/OverlayEffects.tsx:背景/CG/立绘/道具叠加与提示

现有素材对照

  • UI:title_bg_16x9、menu_bg_16x9、chapter_select_bg_16x9、save_load_bg_16x9、settings_bg_16x9
  • 背景:ch1_bench_night/dawn、ch2_store_aisle_night、ch2_dorm_corridor_night、ch3_library_midnight/road_night、ch4_airport_hall/plane_window_night、ch5_radio_desk_night/split_rooms_abstract、ch6_city_bike_night/train_car_night/cafe_glass_wait、ch7_phone_low_abstract/rain_window_night、ch8_editing_table/archive_room
  • CG:ch1_pre_kiss_double_exposure、ch2_mixing_hands_closeup、ch3_library_snack_push、ch4_airport_gift_exchange、ch4_plane_tears、ch5_overnight_call_split、ch6_cafe_outside_wait、ch7_phone_1percent_unsent、ch7_bench_redline_burn、ch8_align_film_timeline、ch8_stamp_archive
  • 结局 CG:end_true_bench_dawn_together、end_good_wrist_uncovered、end_bittersweet_archive_corridor、end_bad_radio_power_off
  • 立绘:女主 f_calm/f_heartbeat/f_defensive/f_guilty/f_hold_tears/f_breaking/f_soft_smile/f_resolve;男主 m_companion/m_light_joke/m_explain/m_tired/m_silent_here/m_swallow_words/m_hurt/m_clear_resolve
  • 道具:mix_drinks_set、audio_box、headphones、radio、editing_tools_set

小贴士

  • 剧情数值变更请保持小步(±1~3),更直观。
  • 如需扩展新章节/结局,继续复用 endingGateending 模式即可。
  • 不要新增图片文件;特效可用 CSS/Canvas。

About

恋爱游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages