0

ゲーム、より具体的にはメイン プレーヤーとの衝突の実装に問題があります (セットアップしたボックスと衝突すると、遠くに跳ね返ります)。これは、ビューアーをセットアップするためのコードです。

    CollisionShape myCol = new CylinderShape(new javax.vecmath.Vector3f(0.4f, 0.9f, 0.4f));
    DefaultMotionState motion = new DefaultMotionState(new Transform(new Matrix4f(new Quat4f(0, 0, 0, 1), new javax.vecmath.Vector3f(0, 33, 0), 1f)));
    javax.vecmath.Vector3f fallInertia = new javax.vecmath.Vector3f(0, 0, 0);
    //myCol.calculateLocalInertia(0, fallInertia);
    RigidBodyConstructionInfo cInfo = new RigidBodyConstructionInfo(1, motion, myCol, fallInertia);
    self_Col = new RigidBody(cInfo);
    self_Col.setFriction(1f);
    self_Col.setRestitution(1f);
    self_Col.setDamping(0.04f, 0.1f);

そして、これは物理世界のセットアップです:

  AxisSweep3 pairCache = new AxisSweep3(new javax.vecmath.Vector3f(-10000, -10000, -10000), new javax.vecmath.Vector3f(10000, 10000, 10000));
    DefaultCollisionConfiguration collisionConfiguration = new DefaultCollisionConfiguration();
    CollisionDispatcher dispatcher = new CollisionDispatcher(collisionConfiguration);
    SequentialImpulseConstraintSolver solver = new SequentialImpulseConstraintSolver();
    detectionWorld = new DiscreteDynamicsWorld(dispatcher, pairCache, solver, collisionConfiguration);
    detectionWorld.setGravity(new javax.vecmath.Vector3f(0, -2f, 0));

プレイヤーを動かして新しい位置をコリジョン ボックスに適用し、物理ステップを実行して位置を新しいコリジョン ボックスの位置に設定しようとしています。したがって、基本的には、位置を取る 2 つのベクトルがあります。

編集:誰か?私はまだこの問題を抱えています

4

1 に答える 1