2016-09-09 19 views
0

スペースバーボタンを押したときに回転ジョイントを介してボディ接続を回転しようとしていますが、すべての条件を作成してスペースバーのボタンを押してもうまくいきません。ここ は私の方法入力ボタンでRevoluteジョイントを制御する方法は?

  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; 
     } 

機能を打つと私のレンダリング方法は、このようなものですされています

public void render(float delta) { 
     Gdx.gl.glClearColor(0.5f, 0, 0, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     game.batch.setProjectionMatrix(camera.combined); 
     world.step(1f/60f, 6, 2); 
     debugRenderer.render(world, camera.combined); 
     game.batch.begin(); 
     game.batch.end(); 
    } 

私はどんな提案でもお手伝いしてください。

答えて

1

私は最後の行は、それがメソッドの使用revolutejointを作成するよりも、他の

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

のようにヒットした方法であるか、または必要がある、あなたの作成方法に間違いを見つけた代わりにrevolutejointDef

revoluteJoint.enableMotor=true; 
関連する問題