box2d出现问题。我想补充已经存在的游戏物理,但遇到了问题。首先,我用计算绘制的游戏世界
public Hero(float x, float y, int width, int height) {
this.width = width;
this.height = height;
position = new Vector2(x, y);
velocity = new Vector2(0, 0);
acceleration = new Vector2(0, -420);
}
public void update(float delta){
velocity.mulAdd(acceleration, delta);
if(velocity.y < -200){
velocity.y = -200;
}
position.mulAdd(velocity,delta);
}
public void onTap(){
velocity.y = 140;
}
英雄的身体从标准设置下降,但我添加到测试中的身体框表现得非常奇怪。
问题编号1.为什么box2d框比使用此设置的英雄更多,但是当我除以2时,它变得类似于英雄的纹理大小?可以将这样的效果联系起来,以便根据所有方向的中心绘制身体2.为什么世界上有重力-420的身体以相同的速度连续下降,但不如我的英雄那么多。如何实现类似的效果呢?
hero = new Hero(30, midPointY, 18, 21);
hero1 = new Box2Dhero(world, 90, midPointY, 18, 21);
它的box2d英雄构造函数
public Box2Dhero(World world, float x, float y, int width, int height ) {
bodyDef = new BodyDef();
bodyDef.position.set(x,y);
bodyDef.type = BodyDef.BodyType.DynamicBody;
body = world.createBody(bodyDef);
box = new PolygonShape();
box.setAsBox(width,height);
fixtureDef = new FixtureDef();
fixtureDef.shape = box;
body.createFixture(fixtureDef);
}
我的GameWorld大小
float screenWidth = Gdx.graphics.getWidth();
float screenHeight = Gdx.graphics.getHeight();
float gameHeight = 385;
float gameWidth = screenWidth / (screenHeight / gameHeight);
答案 0 :(得分:0)
您对基于所有方向单位长度的中心的方框的观察是正确的。
它会影响你的比较,因为box2d的盒子和你的盒子的起源不匹配。这种影响应该相对较小。
可能会有更多差异/优化,从源头上看,比较对我来说是最有效的解决方案。
祝你好运。