我正在使用libGDX中的Box2D制作游戏。我有一个“墙”对象,它是围绕屏幕设置的静态ChainShape
身体,一些“球”是动态CircleShape
身体和负重力。球应该是非常有弹性的,所以我给它们设置了一个很大的1.1f
恢复原状,但墙不应该,即使我将墙的恢复原状设置为零,球也会从它反弹得太高。我需要一些东西,比如将负面恢复原状设置在墙上,这样球就会相互反弹并从墙上下来。有什么想法吗?
答案 0 :(得分:-1)
你可以有2个变量存储两个轴的运动方向。 例如:
$.listen('parsley:field:error', function(ParsleyField) {
var pElement = ParsleyField.$element.parent('div').prev().find('p');
pElement.css("color", "red");
});
然后在您的更新方法中,您可以将其添加到对象的当前位置。 现在,如果你想让它从表面反弹,你可以将它的值乘以-1。这将反转对象的方向。 例如,假设一个球在x轴上以2个单位的速度移动。 当球击中边缘时,xDirection将乘以-1。现在xDirection是-2。因此,球的方向反转。 但是,这将使球以相同的速度反弹。为了解决这个问题,你可以将xDirection与0.5相乘。现在,如果我们将球的xDirection乘以0.5,则xDirection将为-1。因此,球会移动得更慢。使用相同的概念,您可以通过乘以1.5而不是0.5来使球移动得更快。而且,您也可以使用yDirection执行此操作。