标签: bullet

2个机构之间的子弹碰撞回调

我有2个物体,一个球体和一个盒子,当一个物体碰撞另一个物体时,它会做一些动作(即破坏盒子).

我尝试了几种方法:

  • checkCollideWith始终返回true;
  • contactPairTest - 我不明白该怎么用.它需要3个参数,2个对象和一个回调.我认为回调可以是我的代码中的任何函数,但它不能像那样工作.

有人可以举例说明如何调用方法,例如CollissionResult(),当2 btRigidBodies碰撞时(即bodyA和bodyB)?

c++ callback bullet collision

2
推荐指数
1
解决办法
2515
查看次数

libgdx项目符号偏移原点

我正在使用Blender创建我的模型,并将它们加载到Libgdx中,如果我使用如下所示的模型中心中的Origin创建它们,然后使用此代码创建刚体,则一切正常

        Vector3 hescoWallHalfExtents = new Vector3(hescoWall.calculateBoundingBox(bounds).getDimensions()).scl(0.5f);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是,如果我像这样将模型的底部放置在地面上

在此处输入图片说明

然后btRigidbody像这样偏移

在此处输入图片说明

有什么明显的方法可以抵消刚体的高度吗?

非常感谢。

斯普里西

bullet rigid-bodies bulletphysics libgdx

2
推荐指数
1
解决办法
648
查看次数

实施急切加载以停止N + 1-Rails

我目前有一个页面,需要11秒钟才能加载。我正在使用Bullet Gem帮助我找到N + 1查询的发生位置。它给了我一些输出,但是我真的不知道该怎么做。这是Bullet的输出:

GET /events/1679/dashboard
USE eager loading detected
  RSVP => [:tickets]
  Add to your finder: :includes => [:tickets]
Call stack
  /Users/cameronbass/Desktop/Work/blackbird-rsvp/app/decorators/rsvp_decorator.rb:54:in `tickets?'
  /Users/cameronbass/Desktop/Work/blackbird-rsvp/app/views/accepted_rsvps/_list.html.erb:33:in `block in _app_views_accepted_rsvps__list_html_erb___1211423417683052584_70339569780320'
Run Code Online (Sandbox Code Playgroud)

告诉我放在这条线上

def tickets?
  rsvp.tickets.any?
end
Run Code Online (Sandbox Code Playgroud)

这是关联:

has_many :tickets, through: :attendees
Run Code Online (Sandbox Code Playgroud)

Attendee.rb

has_one :ticket
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails bullet eager-loading

2
推荐指数
1
解决办法
1023
查看次数

子弹物理,btBvhTriangleMeshShape 和 btStaticPlaneShape 之间的碰撞不起作用

首先一些事实:我尝试使用 Visual Studio 2012 在 C++ 中使用 Bullet 实现碰撞检测。到目前为止,我有一个球体:

    btCollisionShape* fallShape = new btSphereShape(100); 
    btDefaultMotionState* fallMotionState =
            new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,500,0)));
    btScalar mass = 1000;
    btVector3 fallInertia(0,0,0);
    fallShape->calculateLocalInertia(mass,fallInertia);
    btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,fallMotionState,fallShape,fallInertia);
    btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI);
    physicsWorld->addRigidBody(fallRigidBody);
Run Code Online (Sandbox Code Playgroud)

我的水平,实现为 btBvhTriangleMeshShape:

    triangles.addTriangle(btVector3 (0, 0, 0),btVector3 (0, 0, 0),btVector3 (0, 0, 0));

btCollisionShape* levelShape = new btBvhTriangleMeshShape(&triangles, true, true);
    btDefaultMotionState* levelMotionState = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,0,0)));
  btRigidBody::btRigidBodyConstructionInfo
      levelRigidBodyCI(0,levelMotionState,levelShape,btVector3(0,0,0));
   btRigidBody* levelRigidBody = new btRigidBody(levelRigidBodyCI);
    physicsWorld->addRigidBody(levelRigidBody);
Run Code Online (Sandbox Code Playgroud)

我知道三角形中只有一个三角形,但它们会发生碰撞。

我现在的问题是,当它们发生碰撞时,我的程序会关闭,没有任何特定错误,只是来自 Visual Studio 的未处理异常窗口。

有人有想法吗?

c++ bullet bulletphysics visual-studio-2012

1
推荐指数
1
解决办法
3072
查看次数

Bullet物理盒不旋转

我正在使用以下代码使用bullet物理引擎建立一个简单的世界.当我运行它时,框不会表现得真实,因为它们不会旋转.这就像他们的轮换被锁定一样.有没有人以前见过这样的东西或者知道是什么原因造成的?谢谢.

World::World()
{
mBroadphase = new btDbvtBroadphase();
mCollisionConfiguration = new btDefaultCollisionConfiguration();
mDispatcher = new btCollisionDispatcher(mCollisionConfiguration);
mSolver = new btSequentialImpulseConstraintSolver();
mWorld = new btDiscreteDynamicsWorld(mDispatcher, mBroadphase, mSolver, mCollisionConfiguration);
mWorld->setGravity(btVector3(0, -10, 0));

mGroundShape = new btStaticPlaneShape(btVector3(0, 1, 0), 1);
mBoxShape = new btBoxShape(btVector3(4, 1.5, 1));

mGroundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, -10, 0)));
btRigidBody::btRigidBodyConstructionInfo groundRBCI(0, mGroundMotionState, mGroundShape, btVector3(0, 0, 0));

mGroundRigidBody = new btRigidBody(groundRBCI);
mGroundRigidBody->setUserIndex(1);
mWorld->addRigidBody(mGroundRigidBody);

btScalar mass = 1;
btVector3 boxInertia(0, 0, 0);
mBoxShape->calculateLocalInertia(mass, boxInertia);

mBoxMotionState1 = new btDefaultMotionState(btTransform(btQuaternion(0, 0, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl physics bullet

1
推荐指数
1
解决办法
1075
查看次数

Bullet 可以处理液体吗?

PhysX FleX很酷。但是我更喜欢Bullet。但是,我在那里找不到任何类似的功能。

有什么建议么?

bullet bulletphysics

1
推荐指数
1
解决办法
1961
查看次数

Bullet Physics中运动物体之间的碰撞

我正在使用Bullet Physics Engine.我创建的世界基于:

  • 静态对象 - >地面
  • Dinamic Object - >将被其他对象移动.
  • 2个运动物体 - >它们将移动动态物体.我需要从外面控制它们,所以我需要运动物体.

每个运动和动态之间的碰撞按预期工作.

然而,当一个运动碰撞另一个时,它会超越,我需要它们碰撞并"对这个碰撞做出反应"(就像一个Dinamic身体)

我一直在寻找答案,但我没有找到任何解决方案.我能做什么?谢谢

collision-detection bullet kinematics collision bulletphysics

1
推荐指数
1
解决办法
1491
查看次数

不确定如何在Java Slick游戏中实现子弹系统?

所以,我一直在关注Slick API 2D游戏Java教程的教程,我掌握了如何使用API​​的基础知识.但是,当我在玩游戏并尝试制作游戏时.我试图在我的2D太空射击游戏中实现子弹/射击系统.我似乎找不到办法做到这一点!

我试过在谷歌和YouTube上四处寻找,但它根本没有帮助......!我现在所有的游戏都是从右到左移动一艘船.我希望能够做到这一点,以便每次按下空格键时都会触发类似子弹的对象.我只是不确定如何去做...我希望有人可以简单地向一位新程序员解释它!

java bullet slick2d

0
推荐指数
1
解决办法
2678
查看次数