Java Libgdx-有一个实体部分豁免Phsyics
我正在使用LibGDX制作一款手机游戏,现在我面临着一个特定的问题 我有一个可以与墙碰撞的实体,当这种情况发生时,墙会受到一定的力,然后导致它离开屏幕,不再正确定位 我曾尝试使用LibGDX的isSensor变量,但在使用之后,我的实体直接穿过了墙 如何使墙阻止实体移动,但不受实体力的影响 我正在使用物理体编辑器来编辑我的共线形状,因为它们不是正常的几何格式 谢谢,Java Libgdx-有一个实体部分豁免Phsyics,java,android,ios,libgdx,box2d,Java,Android,Ios,Libgdx,Box2d,我正在使用LibGDX制作一款手机游戏,现在我面临着一个特定的问题 我有一个可以与墙碰撞的实体,当这种情况发生时,墙会受到一定的力,然后导致它离开屏幕,不再正确定位 我曾尝试使用LibGDX的isSensor变量,但在使用之后,我的实体直接穿过了墙 如何使墙阻止实体移动,但不受实体力的影响 我正在使用物理体编辑器来编辑我的共线形状,因为它们不是正常的几何格式 谢谢, Rene您只需将墙设置为静态即可 我不确定如何使用physics body editor,因为我从未使用过它,但这里有一些我不久前
Rene您只需将墙设置为静态即可 我不确定如何使用physics body editor,因为我从未使用过它,但这里有一些我不久前编写的代码,可以做类似的事情
private void buildRoom()
{
Vector2[] roomCorners = new Vector2[]{new Vector2(0f, 0f),
new Vector2(0f, ROOM_HEIGHT),
new Vector2(ROOM_WIDTH, ROOM_HEIGHT),
new Vector2(ROOM_WIDTH, 0f)};
ChainShape roomShape = new ChainShape();
try
{
roomShape.createLoop(roomCorners);
BodyDef roomDef = new BodyDef();
roomDef.type = BodyDef.BodyType.StaticBody;
Body room = world.createBody(roomDef);
room.createFixture(roomShape, 0);
} finally
{
roomShape.dispose();
}
}
谢谢你的回复。不幸的是,当我将密度设为0时,它产生了相反的效果,墙立即被完全推开,这使问题变得更糟。很明显,我可以添加一个荒谬的密度,但我不认为这是正确的方法。我认为密度是不相关的。你需要把它变成一个静态物体。密度0是我在某处读到的。听起来好像不对,但我将编辑并删除该部分。在我的情况下,静态实体不起作用,因为墙受到向下速度的影响,但我已通过使用KinameticBody解决了我的问题,它不受力的影响,而是受速度的影响。我已通过在LibGdX中使用KinomaticBody解决了我的问题。