簡體   English   中英

box2d中不正確的碰撞

[英]not proper collision in box2d

我正在開發一種游戲,其中用戶必須擊打高速球。 為了擊球,我使用旋轉關節將一個矩形物體與演員連接在一起,並使它的馬達以指定的速度(馬達速度)旋轉。 現在一切都非常完美,但是當球的速度很高時,它繞過了矩形身體。 使用碰撞列表器,我發現發生了碰撞,但是碰撞后球沒有被反射。 因為只有在球高速運轉時才會發生這種情況,所以碰撞的物體密度是bcoz。 還是它的旋轉關節馬達? 我在這里想念什么嗎?

這是兩個主體的代碼

//矩形體的方法

public Body createRectangleBodyPart(float x, float y, float width,
        float height, short groupIndex) {
    PolygonShape shape = new PolygonShape();
    shape.setAsBox(width*WORLD_TO_BOX, height*WORLD_TO_BOX);
    MassData massData = new MassData();
    massData.mass = 15;
    BodyDef bodyDef = new BodyDef();
    bodyDef.type = BodyType.KinematicBody;
    bodyDef.position.y = y*WORLD_TO_BOX;
    bodyDef.position.x = x*WORLD_TO_BOX;
     body = world.createBody(bodyDef);
    body.setMassData(massData);
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.shape = shape;
    fixtureDef.density = 1;
    fixtureDef.friction = 100f;
    fixtureDef.restitution = 0.5f;
    fixtureDef.filter.groupIndex=groupIndex;
    body.createFixture(fixtureDef);
    shape.dispose();
    return body;
}

//球體的方法

    public Body createRoundBodyPart2(float x, float y, float radius,
        short groupIndex, float density, int mass) {

    CircleShape shape = new CircleShape();
    shape.setPosition(new Vector2(0, 0));
    shape.setRadius(radius*WORLD_TO_BOX ); // *18
    BodyDef bodyDef = new BodyDef();
    bodyDef.type = BodyType.DynamicBody;
    bodyDef.position.y = y*WORLD_TO_BOX;
    bodyDef.position.x = x*WORLD_TO_BOX;
    MassData massData = new MassData();
    massData.mass = 8;
    Body body = world.createBody(bodyDef);
    body.setMassData(massData);
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.shape = shape;
    fixtureDef.density = 0.5f;
    fixtureDef.restitution=0.007f;
    fixtureDef.filter.groupIndex = groupIndex;
    body.createFixture(fixtureDef);
    shape.dispose();
    return body;
}

嘗試在球體上使用isBullet=true屬性

您是否嘗試過以下這些特性:密度,摩擦力和恢復性。

球的移動速度可能如此之快,以至於與矩形物體發生碰撞時,球的力對於直腸物體而言會很大。 這意味着球不能被rec主體擋住,這就是為什么它會通過。

只是一個猜測。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM