如何使用输入按钮控制Revolute关节?

时间:2016-09-09 12:17:11

标签: libgdx box2d revolute-joints

我正在尝试通过旋转关节旋转身体连接,当我的桌面按下空格键按钮时。当我将所有条件都设置为创建时,工作正常,但不按空格键按钮。 这是我的创建方法

       FirebaseDatabase database = FirebaseDatabase.getInstance();
       DatabaseReference myRef = database.getReference("Drivers");

       Customer customer = new Customer();
       customer.setFirstName(fullName.getText().toString());//fullName is EditText

       myRef.child("drive").push().setValue(customer);

我按下空格键按钮后启用电机

            ballBody =createBall();//first body to the joint
            rectBody=createRect();//second body to the joint

            revoluteJointDef = new RevoluteJointDef();
            revoluteJointDef.initialize(ballBody,rectBody,new Vector2(0,0));
            revoluteJointDef.lowerAngle=0;
            revoluteJointDef.upperAngle=0.785f;
            revoluteJointDef.localAnchorA.set(2,0);
            revoluteJointDef.localAnchorB.set(0,6);
            revoluteJointDef.collideConnected=false;

            revoluteJointDef.lowerAngle=-0.734f;
            revoluteJointDef.upperAngle=0.735f;
            revoluteJointDef.maxMotorTorque=100f;
            revoluteJointDef.motorSpeed=-12.6f;
            revoluteJointDef.referenceAngle=0f;
            revoluteJointDef.enableLimit=true;
            joint = world.createJoint(revoluteJointDef);

这是点击功能

  public boolean keyDown(int keycode) {
        if(keycode== Input.Keys.SPACE) {
                   hit();  // call to hit function
        }

我的渲染方法就像这样

  private void hit(){
        revoluteJointDef.enableMotor=true;
        }

请帮我解决任何建议。

1 个答案:

答案 0 :(得分:1)

我在你的Create方法的最后一行发现了错误,它应该像

revoluteJoint=(RevoluteJoint)world.createjoint(revolutejointDef);

并且在命中方法或者创建方法中使用revolutejoint而不是rev​​olutejointDef

revoluteJoint.enableMotor=true;