像碰撞一样的我的世界
Minecraft like collision
我正在开发一款类似《我的世界》的游戏,用于教育目的。到目前为止,即使有1024x1204
块,渲染也很棒,但现在我开始集成播放器碰撞,我遇到了问题。
我对玩家有一个aabb
,aabb
他周围的所有方块。这些是动态创建的,并且运行速度非常快。
我的问题如下:
我有速度矢量和当前位置。对于每个轴,我计算潜在位置并制作一个 aabb。我检查碰撞,它是免费的,我移动到那里,否则我将该组件的速度设置为 0。我将轴分开,因为我希望我的玩家向部分面向墙壁的方向滑动。
轴的顺序为 y,x,z。碰撞响应很棒,但我在角落遇到了一些问题,因为它有时会卡在世界上而无法移动。不知道这是什么原因。
我不想实现实际的物理,因为这些要求更高,而且基本上对于我需要的东西来说太多了。
你们对如何以良好的方式实现这一点有什么建议吗?我做了一些搜索,但我没有找到任何对这种特殊情况有用的东西。
从
某种意义上说,这有点抽象,因为问题的原因可能与许多事情有关。从我的头顶来看,可能是碰撞检测代码中的一个错误:它以某种方式允许对象跨越 1(或更多)单位的边界。因此,当计算下一次碰撞时,1个或多个维度被卡住(想象一下,当检测到碰撞时,手臂已经在墙内。你不能把你的胳膊伸出来,因为它与墙边界的内部相撞)
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 在没有动态内存的世界中,我是否需要虚拟析构函数?
- 如何在我的项目中链接 re2 库,就像静态库一样与 cmake 链接
- 我的3D OpenGL对象围绕世界来源,而不是本地空间来源.我在做什么错或误会
- 为什么重新执行我的多线程代码后输出不一样
- 我该怎么做 - 就像一个速度 的功率快速的功率一样快速的两个功率
- 为什么我的CUDA实现和我的CPU实现一样快
- 我的 c++ 程序是否会从世界各地的计算机(在我的局域网之外)连接到本地 MySQL 数据库
- C++:为什么我的hash_map会给我一个像地图一样有序的结果
- 像碰撞一样的我的世界
- C++ 我的世界2D块类型
- 有没有办法像我的代码一样在C++中调用多形反射
- 如何让我的函数只能从排列中找到现实世界
- 我应该使用什么类型的容器来容纳基于 2D 图块的世界图块对象?
- DirectX 9.0(世界坐标移动我的对象(三角形)动画
- 像《我的世界》这样的可移动光源
- WPF世界编辑器为我的DirectX游戏引擎
- 黑客世界,霍格沃茨的女巫们.我的方法有什么问题?