Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

方块火线 BlockFire

我的世界 × 第一人称射击 —— 挖方块、建工事、守住一波波来袭的僵尸。

一个单文件网页游戏(index.html,约 900 行),零构建、零安装,打开就能玩。

🎮 在线试玩:https://oldcircle.github.io/blockfire/

Three.js 单文件 License

玩法

僵尸波次制生存:每波 3 + 2×波数 只僵尸从世界边缘涌来,越来越多、越来越硬、越来越快。你有一把无限备弹的步枪,和一整个可以拆、可以搭的体素世界。

两个玩法的化学反应是核心乐趣:

  • 子弹可以击碎方块 —— 打穿树干、轰塌土坡,射击就是你的镐子
  • 僵尸爬不上超过 1.2 格的落差 —— 搭墙、挖沟、建高台是正经防守策略
  • 脱战 5 秒后缓慢回血 —— 打一波、修一波工事,节奏自己掌握
  • 爆头 2 倍伤害,击杀 +100 分,守住一波有波次奖励分

操作

按键 动作
W A S D 移动
空格 跳跃
Shift 疾跑
鼠标左键 射击(可连发,子弹可击碎方块)
鼠标右键 放置方块
14 切换方块:泥土 / 石头 / 木板 / 原木
R 换弹
Esc 暂停

本地运行

需要一个静态服务器(Three.js 走 CDN + ES Module,直接双击 index.html 会被浏览器的模块加载策略拦住):

git clone https://github.com/Oldcircle/blockfire.git
cd blockfire
python3 -m http.server 8642
# 浏览器打开 http://localhost:8642

技术实现

全部逻辑在一个 index.html 里,唯一外部依赖是 CDN 上的 Three.js 0.160:

  • 世界:64×64 程序生成体素地形(双频值噪声高度图 + 随机树木),Map 存方块数据
  • 渲染:每种方块一个 InstancedMesh,只渲染有暴露面的方块,方块增删时整体重建
  • 物理:分轴 AABB 碰撞(玩家 0.6×1.78),重力 + 跳跃 + 疾跑
  • 射击Raycaster 命中判定(僵尸与方块比距离取近者),曳光弹、后坐力、命中标记、枪口闪光
  • 僵尸:盒子拼装的类 MC 造型,追踪 AI + 地面吸附 + 落差爬坡限制,每个部位可独立命中(头部双倍伤害)
  • 音效:WebAudio 振荡器实时合成,无任何音频资源文件
  • 特效:方块破碎粒子、受击红屏、走路摆枪/摆腿动画

License

MIT

About

方块火线 BlockFire — 我的世界 × FPS 单文件网页游戏(Three.js):挖方块、建工事、守僵尸波

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages