2 Star 1 Fork 0

郑博文 / MinecraftWeb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

我的世界(仿)

Join the chat at https://gitter.im/wzh656/Minecraft repo-size code-size language latest-release downloads

修改日期-2021.3.6

运行(Run)

  1. 手机版(Android apk软件)/电脑Windows版(electron实现)运行
    国内链接: 腾讯微云永久下载链接(v1.1.0+,apk&electron)

    版本(version) Android版下载(apk) Windows下载(electron) Github查看(release)
    v1.2.0-alpha 完整版(22.3MB)简化版(6.41MB) exe安装程序(67.3MB) release
    v1.1.0-alpha 完整版(22.49MB) 未打包(unpackaged) release
    v1.0.0.3-alpha 完整版(34.06MB)简化版(6.5MB) 未打包(unpackaged) release
    v1.0.0.1-alpha 完整版(23.88MB) 未打包(unpackaged) release
    v0.5.0-alpha 完整版(23.87MB)简化版(5.35MB) 未打包(unpackaged) release
    v0.4.0-alpha 完整版(23.85MB)简化版(5.34MB) 未打包(unpackaged) release
    v0.3.2-alpha 原始版(0.89MB) 未打包(unpackaged) release
  2. 网页版运行:当前可以直接访问 https://wzh656.github.io/MinecraftWeb/home.html 运行。,

    注意

    1. GitHub是国外网站,网络不好将无法访问
    2. 部分旧版浏览器可能不支持(推荐使用google chrome浏览器以便正常运行)
    3. 竖屏运行时会有一个提示使用横屏或者下载,如果浏览器支持横屏,可以将手机横屏使用; 也可以点击关闭,直接竖屏运行(可能界面显示会有些奇怪)
  3. git clone:当然也可以直接克隆仓库, 然后用浏览器(推荐Chrome)直接运行home.html(也可以放到服务器环境打开), 如果npm安装了electron也可以用electron: npm run test 也就是 electron .

介绍 (Introduction)

(零)序

本游戏是基于《我的世界》游戏思想的仿造,仿造原则是:
在原版基础上增加游戏真实性(比如在物理和化学方面),但拒绝完全复制(体现在“仿”字),故名之真实性原则。 《我的世界》风格的界面只是一个载体躯壳,却不是真正的灵魂所在,一切的一切只是面壁者透露出的表象

战略方针

目前,本游戏仍处在初级发展阶段,bug和性能方面都不是很好。对此,根据真实性原则,需要坚持三个战略(总称改革优化创新战略):

  1. 改革:泛指修bug与代码体系修改;
  2. 优化:泛指不断提高运行速度,增加FPS,减小CPU及内存占用等;
  3. 创新:泛指不断发展新功能。

目前阶段,这三个战略缺一不可,并且是当前发展中需长期坚持的主要及重要战略。

(一)总述

本游戏使用JavaScript(ES6+)+HTML(HTML5)+CSS(CSS3)编写,利用WebGL技术,依赖Three.js进行更便捷的3D渲染。

之所以选择JavaScript+HTML+CSS是因为便于绘制图形化界面(HTML5+CSS3),并易于打包成EXE(electron)和APK(HTML5+)以兼容各个平台

规定:游戏中的每1px为1cm,每100px为1m,每个普通方块为边长1m=100cm=100px的立方体。

注:deskgood为某初中同桌的外号,作为游戏主角名,不要在意名称

(二)操作方式(Operation)

电脑

事件 操作
W S A D 前 后 左 右方向移动(move)
鼠标左键 删除所指位置的方块(remove)
鼠标右键 在所指位置放置手中选中方块(place)
鼠标滚轮 来回切换手中选中方块
shift+鼠标滚轮 以1.5倍比例调节时间流速
空格 跳跃(jump)
双击W,或 Ctrl+W 疾跑(run)
ESC 暂停游戏/关闭交互窗口(命令方块、背包)
Pause-Break 暂停/开始游戏 或 关闭交互窗口(命令方块、背包)
F2 截图
F10 打开/关闭dat.gui
shift+F3 关闭调试(将重载生效)

手机版(摇杆)

  1. 移动:左边的大圆 摇杆操作,touch移动控制行走
  2. 跳跃:右边的小圆 可以与移动同时操作。
    按下(touch-start)之后,如果脚下有方块并且距离上一次跳跃超过1s, 则将沿着y轴正半轴方向以≈5m/s的速度跳起来
  3. 短按屏幕界面:touch<1s 放置('deskgood.put')当前手中选中的方块到点击处
  4. 长按屏幕界面:touch>1s 删除('deskgood.delete')点击处的方块并将其放入手中(优先放入选中处)
  5. 点击工具栏方块: 选中手中的方块

(三)引入的js工具(F3隐藏/显示)

  • state.js:左上角Canvas

    可以使用该工具查看当前渲染状态,该工具有3种状态,点击切换

    • fps:蓝色/fps
      查看当前每秒可渲染的帧数,1s更新1次
    • ms:绿色/ms
      查看渲染每帧需要的时间/ms,渲染1帧更新1次
    • MB:红色/MB
      查看当前运行占用的内存/MB(兆字节)
  • dat.gui.js:右上角

    点击可展开,内含一些配置调试选项
    注意:对性能有很大影响,可按shift+F3隐藏(会重新加载页面生效)

  • VConsoleeruda:右下角

    手机调试工具,点击右下角即可看到一堆输出,可以调试html+css+js,也可以运行JavaScript代码,等效于命令方块

(四)功能 & 计划

部分值得一提的功能

  1. 通过 F=ma, v=at, s=vt 等物理公式计算玩家位置
  2. 考虑空气阻力 f = 1/2*CρSV² 对玩家的影响
  3. 考虑宇宙无规则随机扰动对一切参数数据的影响
  4. 【特性】XYZ轴均无限、区块无限的世界
  5. 【特性】爬树功能
  6. 根据玩家设置的经纬度开始日期计算日出日落时间和天空颜色、环境光颜色
  7. 具有降雨量控制天气系统
  8. 用柏林噪声simplexNoise根据种子(seed)随机生成的区块类型、地形、土壤层厚度、树高、树叶高、降雨量和完善的区块系统
  9. 独立于外界且可更改流速、可进行setTimeout, setInterval, clearTimeout, clearInterval的时间系统

注:此处的特性指偶然的产生功能

计划(plans)

  1. 【创新】实体:编写实体类class Entity,具有不规则形状、碰撞箱、位置、旋转、速度的非方块物体
  2. 【创新】工具:编写新的工具类class Tool,并增加挖掘时间和挖掘损耗
  3. 【创新】玩家状态界面:健康、饥饿、口渴、精神、疲惫等
  4. 【创新】工具合成界面
  5. 【创新】【改革】使游戏更加科学:方块重力及电磁力
  6. 【优化】【改革】尝试使用多线程工作(除涉及scene等主线程对象以外)
  7. 【优化】【改革】尝试使用asm.js或wasm工作
  8. 【创新】联机:尝试使用内网联机('electron')
  9. 更多……【未解密】天机不可泄露

注:计划赶不上变化

(五)感谢(thanks)

  • 感谢“卓佳浩”和“deskgood”对本游戏的大力支持鼓励

  • @jason-bowen-zheng提供了一些交流与建议

(六)关于代码

允许非商业用途的阅读、使用、复制、分发代码,
修改借鉴代码和派生作品请先告知作者,
欢迎为代码的完善和新的功能提出建议或想法。

(七)更多(more)

画面庞杂精细的《清明上河图》的信息量远不如几朵飘渺的白云背后的信息量。 同样,一个内容复杂的文档不如一张简洁的白纸深处隐藏的信息量大。
为了保留神秘感,则仅介绍至此,文档可能长时间不会有较大更新,更多特性请自行运行尝试在代码中领悟

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/jason-bowen-zheng/MinecraftWeb.git
git@gitee.com:jason-bowen-zheng/MinecraftWeb.git
jason-bowen-zheng
MinecraftWeb
MinecraftWeb
master

搜索帮助