C++平滑播放器-墙-碰撞(靠墙滑动)
C++ Smooth player - wall - collision (sliding against wall)
我已经尝试解决玩家与墙的平滑碰撞问题,以便玩家沿着墙滑动。
我尝试了以下内容:
playerBox->move();
if (playerBox->intersects(wall)) {
clearMovement();
movePlayerBoxBack();
}
但如果玩家碰到墙,他就不会滑。。。他只是停下来。(我也为W、A、S和D单独做。)
只有当我将玩家位置设置回他碰到的墙的位置。如下:
player->move();
if (intersect) {
moveToWall();
}
但它不起作用,因为对于一堵墙来说另一个是球员接触更多的边,球员跳到角落。。。所以它只适用于一面墙。。。
我的问题是:我该如何使玩家-墙-另一种方式的碰撞,也适用于与一个或多个其他人连接的墙。
你可以从玩家身上射出一条射线,看看它是否撞到了墙上。如果它确实发生了碰撞,请使用墙的法线制作一个向量,该向量沿玩家跑步的方向沿边运行。
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 碰撞永远不会在我的系统中注册
- 在均匀网格中处理碰撞
- 平台游戏 - 下车时避免与平台碰撞
- AABB 碰撞使实际精灵的大小翻倍
- 使用具有设置延迟C++的mouse_event平滑鼠标移动
- 具有随机值的多个对象及其碰撞的 SFML
- SDL/C++: 如何平滑但随机地移动矩形?
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- Box2D Contact Listener碰撞仅间歇性工作
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 同时与两个片段着色器发生碰撞
- 使用 SDL2 平滑网格移动?
- 2D 障碍物碰撞
- 可破坏的网格块会导致奇怪的碰撞
- ptrdiff_t typedef 碰撞 - 谷歌测试和英特尔蟒蛇
- 我试图将光标平滑地移动到随机点
- 使用鼠标滚轮平滑地滚动QTableWidget
- C++平滑播放器-墙-碰撞(靠墙滑动)