title: Libgdx Box2d Player doesnt move
body: <p>I got a problem on Box2d I'm new on Box2d so couldnt handle it movement of my player.
  I want to move my player to the left and right when the user touch left and right buttons in my game.
  in my game player already going through the up y axis .
  I wanted see cool smooth animation while controlling player.
  I just couldnt move my player to the left how can I do that ?
  thanks in advance</p>
  
  <p>//EDITED</p>
  
  <p>I created a fixture for testing , I can move fixture but not my player.
  how can I attach my player sprite to body ?
  and I have to find a proper way to controlling body. it wont stop once you started.
  this is my codes</p>
  
  <pre><code>public World world;
  public Body bplayer;
  public Box2DDebugRenderer b2dr;
  public Matrix4 cameraBox2D;
  </code></pre>
  
  <p>PlayScreen</p>
  
  <pre><code>buttonimage.addListener(new ClickListener() {
      public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
      {
  
      bplayer.setLinearVelocity(-5*PPM , 0);
  
  
  
      return true;
      }
  });
  world = new World(new Vector2(player.getPosition().x , player.getPosition().y) , false);
  b2dr = new Box2DDebugRenderer();
  bplayer = createPlayer(player.getPosition().x , player.getPosition().y);
  </code></pre>
  
  <p>show method</p>
  
  <pre><code>buttonimage.setPosition(160,0);
  rightbuttonimage.setPosition(320,0);
  pauseimage.setPosition(220,-20);
  cameraBox2D = camera.combined.cpy();
  </code></pre>
  
  <p>Render method</p>
  
  <pre><code>Gdx.gl.glClearColor(0, 0, 2f, 1);
  Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  
  
  sb.setProjectionMatrix(camera.combined);
  
  player.position.y += 500 * Gdx.graphics.getDeltaTime();
  sb.begin();
  sb.draw(bg, 0, camera.position.y - (camera.viewportHeight/2));
  sb.draw(player.sprite, player.getPosition().x , player.getPosition().y);
  for (Tube tube : tubes) {
      sb.draw(tube.getlefttube(), tube.getposlefttube().x, tube.getposlefttube().y);
      sb.draw(tube.getrighttube(), tube.getposrighttube().x, tube.getposrighttube().y);
      sb.draw(tube.getLight() , tube.getPoslight().x , tube.getPoslight().y);
  }
  
  
  
  
  
  delta*=speed;
  sb.end();
  
  update(delta);
  b2dr.render(world , cameraBox2D);
  stage.draw();
  
  app.batch.begin();
  app.font23.draw(app.batch,"Lights collected :" + dropsGathered , 0, 720);
  app.batch.end();
  </code></pre>
  
  <p>cameraUpdate method</p>
  
  <pre><code>Vector3 position = camera.position;
  position.x = player.position.x;
  position.y = player.position.y;
  camera.position.set(position);
  </code></pre>
  
  <p>createPlayer method</p>
  
  <pre><code>Body pBody;
  BodyDef def = new BodyDef();
  def.type = BodyDef.BodyType.DynamicBody;
  def.position.set(x * PPM, y * PPM  );
  def.fixedRotation = true;
  pBody = world.createBody(def);
  
  return pBody;
  </code></pre>
  
  <p>update method</p>
  
  <pre><code>world.step(1 / 60f , 6 , 2);
  
  for(int i = 0; i &lt; tubes.size; i++) {
  
      Tube tube = tubes.get(i);
  
      if (camera.position.y - (camera.viewportWidth/2) &gt; tube.getposlefttube().y + tube.getlefttube().getWidth()) {
          tube.reposition(tube.getposlefttube().y + ( TUBE_COUNT) );
  
      }
  
      if (tube.collides(player.getBounds())){
          app.setScreen(new GameOver(app));
  
  
      }
  
      if (tube.gathered(player.getBounds())){
  
              dropsGathered++;
  
  
  
  
      }
  
      if (dropsGathered &gt;= 50){
          //app.setScreen(new Stage2(app));
      }
  
  
  }
  camera.update();
  
  handleInput();
  camera.position.y = player.getPosition().y + 300;
  player.update(delta);
  camera.update();
  
  cameraUpdate(delta);
  
  stage.act(delta);
  </code></pre>