计划将在2025.8.30之前持续对屎山进行维护
- 时间刻
- 帧率计算
- 游戏窗口
- 光照系统
- 地形生成
- 柏林噪音计算
- 天空盒
- 方块png蒙版
- 方块面渲染
- 十字光标
- 鼠标指针动态
- 键盘映射
- 方块
- 草方块
- 石头
- 泥土
- 原木
- 沙子
- 木板
-
工作台及合成表功能(待定)
-
- 方块被破坏
- 方块渲染
-
实体-
玩家- 活动
- 移动
-
跳跃 -
水下移动 -
水下跳跃 - 飞行模式(待定)
- 破坏方块
- 计算指针指向方块
-
播放破坏动画
- 放置方块
- 计算指针指向方块
-
背包
- 活动
-
怪物(待定) -
掉落物(待定)
-
- 克隆仓库到本地
- 确保你的电脑上有Maven(IDEA自带)
- 更新Maven依赖,确保
pom.xml文件不报红 - 运行
如果提示在源根目录外,请将src设置为源代码根目录
- 偶发的当放置方块过快导致方块卡住玩家时,有概率当前方块被挖掘后无法清除渲染
- 由于时间原因,没有写边界检查,放置方块不能超出边界,否则程序抛异常退出
- 由于计算精度问题,鼠标左键长按破坏方块时,会消耗比预设更久的时间
- ESC释放鼠标时,会强制重置视角且视角移动不会停止
- 视角转换没有万向锁,因此在某些情况下会出现视角翻转,这个时候,狂甩鼠标就能恢复正常
- 偶发性的视角无法移动,是因为鼠标甩得太快了,导致鼠标指针超出窗口范围,解决方法是按下
Esc键释放鼠标,然后再按下Esc键重置鼠标 - 由于未知原因,玩家碰撞体积比设定的要大,无论碰撞箱如何设置。经实验,玩家通过至少需要222的空间
- LWJGL深度测试与天空盒渲染有冲突 ,
因此删除了天空盒 - 为何有大片沙地?因为没时间写水
- 按下
WASD键移动 - 按下
空格键向正上方飞,按下Shift键向正下方飞 - 鼠标左键长按破坏方块,鼠标右键单击放置方块
- 按下
Esc键释放鼠标 - 在
src/com/craftmine/game/GameResources.java中修改游戏参数 - 点击数字键1~8切换放置方块类型
或许你可以在src/com/craftmine/game/GameResources.java中修改地图大小,挑战一下电脑软肋(bushi)
LWJGL:图形化界面以及各种相关库
- openAL:一个适用于游戏应用程序和许多其他类型音频应用程序的跨平台3D音频API。
- openGL:业内最广泛采用的 2D 和 3D 图形 API,为各种计算机平台带来了数千个应用程序。
- GLFW:创建多个窗口,处理用户输入(键盘、鼠标、游戏外设)并管理上下文。还支持多显示器、剪贴板访问、文件拖放,以及更多功能 。
- Assimp:一个可移植的开源库,用于以统一的方式导入各种常见的 3D 模型格式。
- STB
- ImGUI:可视化/调试工具
JOML:一个用于 OpenGL 渲染计算的 Java 数学库
我的世界开发者中文指南
只用7个命令方块做出柏林噪声生成地形?!
How to Use Perlin Noise in Your Games 全英文没看完
《3D Game Development with LWJGL 3》中文翻译 过时的翻译先前版本的翻译
3D Game Development with LWJGL 3的翻译
GLFW官方文档
OpenGL官方文档
部分功能实现参考了MineCraftMini
整体实现参考了3D Game Development with LWJGL 3

