2015-08-18 73 views
1

我正在制作一个游戏,其中有一个对象在屏幕上显示为“静态”,因此它们不会对重力做出反应,同时对象可能会从顶部掉落并与他们相撞。这一部分都很好。但是,我希望碰撞导致静态物体根据碰撞的速度/角度旋转,但不会以任何其他方式响应,例如飞离屏幕。防止与Corona SDK发生碰撞时的移动

有没有办法阻止静态物体弹开,而只是旋转到位?

回答

1

您的静态对象仍然有碰撞事件。所以你可以捕捉这些事件并自己旋转你的对象。

另一种方式是:使用动态主体。但是当他们的身体反弹到0时,所以他们不会反弹。而关于重力,你可以设置gravityScale为0,使他们还没有反应过来重力


记住:静态对象无法通过物理移动或旋转。你必须自己做。您可以通过设置'gravityScale'和'bounce'属性来阻止动态物体在重力作用下弹跳或坠落

此外,如果您不希望它被推入,请使用右相位捕捉碰撞事件(属于您的情况)并将其设置为linearVelocity为(0,0)

我还没有尝试过,但也许你可以使它成为一个动态对象,但链接到一个静态对象(喜欢轮到一个职位的链接)。所以它不能移动,但仍然在冲突时旋转

P/S:我做了一个测试,它的工作。让你的对象像动态球并将它们链接到静态对象。他们现在不能移动,但在碰撞时旋转。

+0

我原本使用动态对象,并且我的gravityScale设置为0以及反弹为0,但该对象在碰撞后仍然被推开。 – KenTenMen