public override void initTest(bool deserialized) { { BodyDef bd = new BodyDef(); bd.position.set(0.0f, 0.0f); Body body = m_world.createBody(bd); EdgeShape edge = new EdgeShape(); edge.set(new Vec2(-10.0f, 0.0f), new Vec2(10.0f, 0.0f)); body.createFixture(edge, 0.0f); PolygonShape shape = new PolygonShape(); shape.setAsBox(0.2f, 1.0f, new Vec2(0.5f, 1.0f), 0.0f); body.createFixture(shape, 0.0f); } { BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; bd.position.set(0.0f, 4.0f); PolygonShape box = new PolygonShape(); box.setAsBox(2.0f, 0.1f); m_body = m_world.createBody(bd); m_body.createFixture(box, 1.0f); box.setAsBox(0.25f, 0.25f); // m_x = RandomFloat(-1.0f, 1.0f); m_x = -0.06530577f; bd.position.set(m_x, 10.0f); bd.bullet = true; m_bullet = m_world.createBody(bd); m_bullet.createFixture(box, 100.0f); m_bullet.setLinearVelocity(new Vec2(0.0f, -50.0f)); } }
public override void keyPressed(char argKeyChar, int argKeyCode) { switch (argKeyChar) { case ',': if (m_bullet != null) { getWorld().destroyBody(m_bullet); m_bullet = null; } { CircleShape shape = new CircleShape(); shape.m_radius = 0.25f; FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.density = 20.0f; fd.restitution = 0.05f; BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; bd.bullet = true; bd.position.set(-31.0f, 5.0f); m_bullet = getWorld().createBody(bd); m_bullet.createFixture(fd); m_bullet.setLinearVelocity(new Vec2(400.0f, 0.0f)); } break; } }
private void launchBomb(Vec2 position, Vec2 velocity) { if (bomb != null) { m_world.destroyBody(bomb); bomb = null; } // todo optimize this BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; bd.position.set(position); bd.bullet = true; bomb = m_world.createBody(bd); bomb.setLinearVelocity(velocity); CircleShape circle = new CircleShape(); circle.m_radius = 0.3f; FixtureDef fd = new FixtureDef(); fd.shape = circle; fd.density = 20f; fd.restitution = 0; Vec2 minV = new Vec2(position); Vec2 maxV = new Vec2(position); minV.subLocal(new Vec2(.3f, .3f)); maxV.addLocal(new Vec2(.3f, .3f)); aabb.lowerBound.set(minV); aabb.upperBound.set(maxV); bomb.createFixture(fd); }
public override void initTest(bool argDeserialized) { { BodyDef bd = new BodyDef(); bd.position.set(0.0f, 0.0f); Body body = getWorld().createBody(bd); EdgeShape shape = new EdgeShape(); shape.set(new Vec2(-10.0f, 0.0f), new Vec2(10.0f, 0.0f)); body.createFixture(shape, 0.0f); PolygonShape pshape = new PolygonShape(); pshape.setAsBox(0.2f, 1.0f, new Vec2(0.5f, 1.0f), 0.0f); body.createFixture(pshape, 0.0f); } m_poly = new PolygonShape(); m_poly.setAsBox(2.0f, 0.1f); m_circle = new CircleShape(); m_circle.m_p.setZero(); m_circle.m_radius = 0.5f; BodyDef bd2 = new BodyDef(); bd2.type = BodyType.DYNAMIC; bd2.position.set(0.0f, 20.0f); m_body = getWorld().createBody(bd2); currFixture = m_body.createFixture(m_poly, 1.0f); m_angularVelocity = (float) _random.NextDouble()*100 - 50; m_angularVelocity = 33.468121f; m_body.setLinearVelocity(new Vec2(0.0f, -100.0f)); m_body.setAngularVelocity(m_angularVelocity); TimeOfImpact.toiCalls = 0; TimeOfImpact.toiIters = 0; TimeOfImpact.toiMaxIters = 0; TimeOfImpact.toiRootIters = 0; TimeOfImpact.toiMaxRootIters = 0; }