Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🎈 BALLOON BUSTERS — 气球人主题 FPS

一款浏览器原生 FPS 小游戏。所有美术资产——枪械、气球人角色、派对地图、贴图、战斗特效——全部在运行时由代码程序化生成,不依赖任何外部素材文件(不读取任何 .png/.jpg/.mp3/.obj)。

唯一的第三方文件是 vendor/ 里的 Three.js 引擎(WebGL 渲染库,属于引擎而非美术素材)。游戏已离线打包,断网也能跑。

运行

需要通过 HTTP 服务器打开(因为用了 ES Module + importmap,不能直接双击 file://):

cd balloon-busters
python3 -m http.server 8765
# 浏览器打开 http://localhost:8765/

点「开始游戏」→ 浏览器请求鼠标锁定 → 进入战斗。

操作

操作 按键
移动 W A S D
瞄准 鼠标
射击(可按住连发) 鼠标左键
冲刺 Shift
换弹 R
暂停 Esc

玩法

  • 打爆一波又一波向你扑来的气球人。普通气球人 1 镖爆,大号气球人 3 镖爆、得分更高。
  • 被靠近会受伤,画面边缘红光闪烁;脱战 4 秒后自动回血。
  • 每波清空后短暂间歇,下一波数量更多、出现大号敌人。

程序化生成清单(全部纯代码)

  • 贴图:<canvas> 绘制天空渐变、派对棋盘地板、彩色条纹墙、礼物盒包装、径向辉光,再转成 THREE.CanvasTexture。
  • 气球人:球体头 + 胶囊身体 + 节点绳结 + 两段四肢,配眨眼高光、微笑嘴;走路时四肢摆动、整体弹性飘浮。
  • 派对枪:橙色枪身、青色枪管、黄色枪口环、握把、扳机、顶部气球装饰;带枪口火光(加法混合 Sprite)、后坐力、走动摇摆、换弹下沉旋转动画。
  • 地图:棋盘地面 + 四面粉彩墙 + 礼物盒掩体(带缎带蝴蝶结)+ 气球柱 + 高空漂浮装饰气球。
  • 战斗特效:InstancedMesh 彩纸雨(带物理下落/反弹/自旋)、加法混合爆破光环、飞镖拖光弹道。
  • 音效:Web Audio API 用振荡器 + 噪声 buffer 合成射击/爆破/受伤/换弹/冲刺/波次/游戏结束音。
  • HUD:准星 + 命中标记、分数/波次/击杀、血条、弹药数、冲刺冷却环、波次横幅、受伤暗角。

文件结构

balloon-busters/
├── index.html              # 全部游戏代码(单文件,~1240 行)
├── vendor/                 # Three.js 引擎(离线副本,非美术素材)
│   ├── three.module.js
│   └── controls/PointerLockControls.js
└── README.md

About

Balloon Busters 气球人 - 3D 气球人主题 FPS 游戏 (Three.js, 程序化生成美术)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages