gpt4 book ai didi

box2d - 如何根据角色行走/站立的斜坡平滑旋转角色?

转载 作者:行者123 更新时间:2023-12-04 05:48:16 25 4
gpt4 key购买 nike

我需要根据他(一个矩形)站立或行走的平台的范围来旋转角色 Sprite 。我通过根据他所站立的平台的坡度旋转它来实现效果。但是有两个问题:

首先,旋转不流畅。当角色从平坦的平台走到倾斜的平台时,它会立即旋转,并且由于旋转,它会被稍微向上推。

其次,一旦他离开斜坡并再次走上平坦的平台,我就无法相应地旋转角色。这是因为此时角色将同时与平坦平台和倾斜平台(它们放置在一起)发生碰撞,因此几步后角色将疯狂地来回旋转,因为两个碰撞检测功能协同工作。

我试图通过检测角色的脸来解决它,并试图找出他的哪一点(左或右)首先接触到某些东西,但它不起作用,因为我只能检测碰撞,而不能检测“无碰撞”或“当角色离开某个平台时”。

我附上了情况说明。请帮忙,谢谢!

PS:由于我不允许发布图片,请访问:http://i.stack.imgur.com/jqPjt.png对于图像。谢谢。

最佳答案

你的轮换似乎不对。您需要围绕字符矩形的底部旋转。这将解决您的一些问题,但不是全部。

需要处理角色接触2个平台的情况。目前我猜你只是直接从平台中提取一个角度并将其分配给角色。这不会削减它,因为当您有不同的接触点时,您需要任意角度。

解决方案是在2个接触点之间创建一个向量,然后取向量的分量x,y并调用 atan2(x, y) .这将以弧度给出触点之间的角度。确保您以正确的方式获取参数!游戏开发需要您了解三角函数和矢量数学。这里发生的事情是我们正在创建一个轴对齐的直角三角形,斜边由两个接触点定义,然后我们翻转三角形并使用 tan = opp/adj 获得角度。通过交换 x 和 y 分量。

请注意,您需要确保接触点始终以特定顺序给出,否则最终会以奇怪的角度旋转,因为您创建的三角形将面向另一个方向。您可能需要先根据 x 坐标进行排序。

关于box2d - 如何根据角色行走/站立的斜坡平滑旋转角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410650/

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