当尝试使用Box2D编写游戏时,我遇到了Box2D的问题.我填充了纹理和精灵的长度的像素数,以在它周围创建一个框.一切都在正确的地方,但由于某种原因一切都很慢.通过在互联网上查看我发现,如果你没有将像素转换为米,box2d可能会将形状作为非常大的对象处理.这似乎是一切运动缓慢的合理原因.
我在这个网站上发现了类似的问题,但答案似乎没有帮助.在大多数情况下,解决方案是使用缩放因子制作将像素数转换为米的方法.我尝试了这一点,但一切都放错了地方并且尺寸错误.这对我来说似乎是合乎逻辑的,因为数字改变但具有相同的含义.
我想知道是否有办法让像素意味着更少的米,所以一切都应该在相同(像素)大小的同一个地方,但意味着更少的米.如果你有不同的方式,你认为可能有所帮助,我也想听听它..
这是我用来创建相机的代码
width = Gdx.graphics.getWidth() / 5;
height = Gdx.graphics.getHeight() / 5;
camera = new OrthographicCamera(width, height);
camera.setToOrtho(false, 1628, 440);
camera.update();
Run Code Online (Sandbox Code Playgroud)
这是我用来创建对象的方法:
public void Create(float X, float Y, float Width, float Height, float density, float friction, float restitution, World world){
//Method to create an item
width = Width;
height = Height;
polygonDef = new BodyDef();
polygonDef.type = BodyType.DynamicBody;
polygonDef.position.set(X + (Width / 2f), Y + (Height / 2f));
polygonBody = world.createBody(polygonDef);
polygonShape = new PolygonShape();
polygonShape.setAsBox(Width / 2f, …Run Code Online (Sandbox Code Playgroud)