【发布时间】:2015-11-11 15:56:23
【问题描述】:
我正在开发一款游戏,其中我有一个在屏幕上“静态”的对象,因此它们不会对重力做出反应,同时,对象可能会从顶部掉落并与它们发生碰撞。那部分都很好。但是,我希望碰撞导致静态对象根据碰撞的速度/角度旋转,但不以任何其他方式响应,例如飞离屏幕。
有没有办法阻止静态物体弹开而只是原地旋转?
【问题讨论】:
我正在开发一款游戏,其中我有一个在屏幕上“静态”的对象,因此它们不会对重力做出反应,同时,对象可能会从顶部掉落并与它们发生碰撞。那部分都很好。但是,我希望碰撞导致静态对象根据碰撞的速度/角度旋转,但不以任何其他方式响应,例如飞离屏幕。
有没有办法阻止静态物体弹开而只是原地旋转?
【问题讨论】:
您的静态对象仍然有碰撞事件。因此,您可以捕捉这些事件并自行旋转对象。
另一种方式是:使用动态体。但是当向它们添加身体时,将反弹设置为 0;所以他们不会反弹。关于 Gravity,你可以将gravityScale 设置为 0 以使它们不会对重力做出反应
记住:静态物体不能通过物理方式移动或旋转。你必须自己做。您可以通过设置“gravityScale”和“bounce”属性来阻止动态对象在重力作用下弹跳或下落
而且,如果你不想让它被推送,捕捉正确相位的碰撞事件(属于你的情况)并将它的 linearVelocity 设置为 (0,0)
我以前没有尝试过,但也许您可以将其设为动态对象,但链接到静态对象(例如链接到帖子的轮子)。所以碰撞时它不能移动但仍然可以旋转
P/S:我做了一个测试,它成功了。使您的对象像动态球并将它们链接到静态对象。它们现在不能移动,但在碰撞时会旋转。
【讨论】: