gpt4 book ai didi

C++ Smooth player - 墙壁 - 碰撞(靠墙滑动)

转载 作者:行者123 更新时间:2023-11-28 06:41:15 25 4
gpt4 key购买 nike

我已经尝试解决平滑播放器-墙壁-碰撞的问题,使播放器沿着墙壁滑动。

我试过以下:

playerBox->move();
if (playerBox->intersects(wall)) {
clearMovement();
movePlayerBoxBack();
}

但是如果玩家碰到墙他就不会滑动...他只是停下来。 (我也分别为 W、A、S 和 D 做。)

只有当我将玩家位置设置回他接触的墙壁的位置。如下:

player->move();
if (intersect) {
moveToWall();
}

但它不起作用,因为对于一面墙,与另一个玩家接触更多的边和玩家跳到角落...所以它只适用于单面墙...

我的问题是:怎样才能顺利player - wall - 以另一种方式碰撞,也适用于与一个或多个其他人相连的墙。

最佳答案

您可以从玩家身上射出一条射线,看看它是否撞到墙上。如果确实发生碰撞,请使用墙壁的法线制作一个 vector ,该 vector 沿玩家奔跑方向的一侧延伸。

关于C++ Smooth player - 墙壁 - 碰撞(靠墙滑动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25913534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com