Skip to content
 
 

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

极速跑酷(Subway Dash)

一款浏览器里直接运行的无尽跑酷游戏,玩法参考地铁跑酷:三车道、跳跃、滑铲、躲避障碍、收集金币。纯原生 JavaScript 和 Canvas 实现,零依赖,双击即可玩。

在线试玩https://qls-cyber.github.io/subway-dash/

English

Subway Dash is an endless runner that plays instantly in the browser, built with vanilla JavaScript and Canvas. No build step, no dependencies.

  • Three-lane dodging with jumps and slides, pseudo-3D projection rendering
  • 8 pick-up power-ups: magnet, shield, dash, double coins, slow motion, spring shoes, coin shower, extra life
  • Rideable trains: hit the striped ramp and run on freight car roofs for bonus coins
  • A Venom-style symbiote monster chases you the whole run and bites when you crash
  • Rotating roadside scenery: lamps, flower beds, metro entrances, trees, benches
  • Keyboard and touch controls; best score persists in localStorage

Play online: https://qls-cyber.github.io/subway-dash/ — or just open index.html locally. Full documentation below is in Chinese.

运行方式

直接双击 index.html,用 Chrome / Edge 等现代浏览器打开即可。

也可以起一个本地服务器:

cd subway-dash
python -m http.server 8000

然后访问 http://localhost:8000

操作

按键 动作
← → 或 A D 切换车道
↑ 或 W 或 空格 跳跃
↓ 或 S 滑铲
P 或 Esc 暂停
Enter 开始 / 重开

手机端:左右滑动换道,上滑跳跃,下滑滑铲,轻点确认。

游戏机制

  • 三车道无限向前延伸,速度随时间提升,障碍密度同步增加。
  • 障碍类型:
    • 低栏杆:需要跳跃。
    • 高空横梁:需要滑铲,跳起来反而会撞。
    • 高墙:必须换道。
    • 高客车厢:必须换道,跳不上去。
    • 矮货运车厢 + 坡道:冲上坡道自动登顶,可以在车顶上跑,车顶有金币;走到边缘自动下落,普通跳跃也可以直接跳上车顶。
  • 金币连击有倍率加成,1.6 秒内连续吃到金币会累计连击。
  • 撞上障碍即结束,分数 = 距离 + 金币分,最高分和累计金币存本地。

场景

  • 跑道两侧布景按槽位轮换:路灯、花坛、地铁口、树、长椅,左右两侧错开排布。
  • 黄昏城市天际线与落日背景,速度越快画面边缘泛起红色压迫感。

道具系统

游戏中有 8 种道具,悬浮在轨道上,与金币同高度拾取。效果时长与刷新权重都在 js/config.js 中调整。

道具 效果
磁铁 8 秒内自动吸附三车道所有金币
护盾 抵挡一次撞击,抵消后碎裂
无敌冲刺 3 秒 1.5 倍速,撞碎一切障碍,每个 +5 分
双倍金币 10 秒金币分值翻倍,可叠加连击倍率
子弹时间 4 秒世界速度降至 60%,操作手感不变
弹簧鞋 10 秒跳跃高度 +40%,可跳过墙
金币雨 立即在前方三车道铺 5 排金币
保命心 撞毁时原地复活一次并清空连击,约 5% 概率刷新

毒液追逐者

人物身后始终跟着一只以毒液为原型的黑色怪物,全身可见:白色吊眼带血丝、裂至耳根的双层尖牙、分叉长舌、滴落的绿色黏液、白色血管纹与利爪。随速度提升它会变得更近更大。撞上障碍时怪物会扑上来咬住人物,配合低吼音效与红色压迫感滤镜。怪物的体型与距离参数在 js/config.js 的 MONSTER_ 常量中调整。

项目结构

subway-dash/
  index.html        页面骨架与 UI
  style.css         界面样式
  js/config.js      数值配置,所有手感参数集中在这里
  js/audio.js       WebAudio 合成音效与背景音乐
  js/input.js       键盘与触摸输入
  js/world.js       世界状态、障碍金币生成、碰撞判定
  js/render.js      伪 3D 投影渲染
  js/game.js        游戏状态机与结算
  js/main.js        入口与主循环

调参指南

想调整难度或手感,只改 js/config.js 即可:

  • START_SPEED / MAX_SPEED / ACCEL:初速、极速、加速度。
  • JUMP_V / GRAVITY:跳跃力度和重力,数值越大跳得越高或落得越快。
  • SLIDE_TIME:滑铲时长。
  • SPAWN_BASE / SPAWN_MIN:生成间隔区间。
  • MONSTER_*:追逐者体型与距离。
  • POWERUP_* / FX_*:道具刷新率与效果时长。

部署与版本约定

  • 推送到 main 分支后 GitHub Pages 自动重建,站点为 https://qls-cyber.github.io/subway-dash/
  • 改完代码后必须把 index.html 里的 ?v=N 全部 +1,否则浏览器会缓存旧文件
  • 不要提交 .github/workflows/ 下的文件(当前令牌无 workflow 权限)

许可证

MIT,见 LICENSE 文件。

About

Stateloop publishing fork of qls-cyber/subway-dash. MIT by upstream authors; packaging-only integration.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages