title: Usage Andengine PhysicsWorld
body: <p>I'm trying to write a simple andengine game but PhysicsWorld gives an error. I've highlighted the errors with double stars (**) in the code below. Where am I making an error?</p>
  
  <p>I looked for examples (github, stackoverflow, code.google.com etc) but I can't find any mistake. I'm trying since this morning.</p>
  
  <pre><code>package com.k.hockeygame;
  
  import org.anddev.andengine.engine.Engine;
  import org.anddev.andengine.engine.camera.Camera;
  import org.anddev.andengine.engine.options.EngineOptions;
  import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
  import org.anddev.andengine.engine.options.resolutionpolicy.FillResolutionPolicy;
  import org.anddev.andengine.entity.scene.Scene;
  import org.anddev.andengine.entity.shape.Shape;
  import org.anddev.andengine.entity.sprite.Sprite;
  import org.anddev.andengine.entity.util.FPSLogger;
  import org.anddev.andengine.extension.physics.box2d.PhysicsConnector;
  import org.anddev.andengine.extension.physics.box2d.PhysicsFactory;
  import org.anddev.andengine.extension.physics.box2d.PhysicsWorld;
  import org.anddev.andengine.opengl.texture.Texture;
  import org.anddev.andengine.opengl.texture.TextureOptions;
  import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
  import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
  import org.anddev.andengine.opengl.texture.region.TextureRegion;
  import org.anddev.andengine.ui.activity.BaseGameActivity;
  import android.hardware.SensorManager;
  import com.badlogic.gdx.math.Vector2;
  import com.badlogic.gdx.physics.box2d.Body;
  import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
  import com.badlogic.gdx.physics.box2d.FixtureDef;
  
  public class HockeyGame extends BaseGameActivity {
  private static final int CAMERA_WIDTH = 800;
  private static final int CAMERA_HEIGHT = 480;
  private Camera camera;
  private Engine engine;
  **private PhysicsWorld physicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_DEATH_STAR_I), false);
  **private FixtureDef fixDef = PhysicsFactory.createFixtureDef(0.5f, 0.5f, 0.5f);
  Scene scene;
  private BitmapTextureAtlas texField, texPlayer1, texPlayer2;
  private TextureRegion texRegField, texRegPlayer1, texRegPlayer2;
  private Sprite spriteField, spritePlayer1, spritePlayer2;
  **private Body bodyPlayer1, bodyPlayer2;
  
  @Override
  public Engine onLoadEngine() {
      camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
      final EngineOptions engineOptions = new EngineOptions(true,ScreenOrientation.LANDSCAPE, new FillResolutionPolicy(), camera);
      engineOptions.getTouchOptions().setRunOnUpdateThread(true);
      engine = new Engine(engineOptions);
  
      return engine;
  }
  
  @Override
  public void onLoadResources() {
      texField = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
  
      texPlayer1 = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
      texPlayer2 = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
  
      BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
  
      texRegField = BitmapTextureAtlasTextureRegionFactory.createFromAsset(texField, this, "background.png", 0, 0);
      texRegPlayer1 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(texPlayer1, this, "a.png", 0, 0);
      texRegPlayer2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(texPlayer2, this, "b.png", 0, 0);
  
      Texture [] textures = {texField, texPlayer1, texPlayer2};
      mEngine.getTextureManager().loadTextures(textures);
  }
  private float fingerCoorX = 0;
  private float fingerCoorY = 0;
  private boolean isMoveBlue = false;
  @Override
  public Scene onLoadScene() {
      this.engine.registerUpdateHandler(new FPSLogger());
      this.scene = new Scene();
  
      spriteField = new Sprite(0, 0, texRegField);
  
      spritePlayer1 = new Sprite(600, CAMERA_HEIGHT / 2 - 128, texRegPlayer1);
  
      spritePlayer2 = new Sprite(50, CAMERA_HEIGHT / 2, texRegPlayer2);
  
      **bodyPlayer1 = PhysicsFactory.createCircleBody(this.physicsWorld, (Shape)spritePlayer1, BodyType.DynamicBody, fixDef);
      **bodyPlayer2 = PhysicsFactory.createCircleBody(this.physicsWorld, (Shape)spritePlayer2, BodyType.DynamicBody, fixDef);
  
      **this.physicsWorld.registerPhysicsConnector(new PhysicsConnector(spritePlayer1, bodyPlayer1));
      **this.physicsWorld.registerPhysicsConnector(new PhysicsConnector(spritePlayer2, bodyPlayer2));
  
      **bodyPlayer1.setLinearVelocity(new Vector2(10, 0));
      **bodyPlayer2.setLinearVelocity(new Vector2(10, 0));
  
      this.scene.attachChild(spriteField);
      this.scene.attachChild(spritePlayer1);
      this.scene.attachChild(spritePlayer2);
  
      this.scene.registerTouchArea(spritePlayer1);
      this.scene.registerTouchArea(spritePlayer2);
  
      **this.scene.registerUpdateHandler(physicsWorld);
  
      return this.scene;
  }
  
  @Override
  public void onLoadComplete() {
  
  }
  }
  </code></pre>
  
  <p>This is the logcat.</p>
  
  <pre><code>04-13 19:10:39.865: D/AndEngine(17573):     at org.anddev.andengine.engine.Engine$UpdateThread.run(Engine.java:685)
  04-13 19:10:40.279: D/AndroidRuntime(17573): Shutting down VM
  04-13 19:10:40.279: W/dalvikvm(17573): threadid=1: thread exiting with uncaught exception (group=0x40af7930)
  04-13 19:10:40.294: E/AndroidRuntime(17573): FATAL EXCEPTION: main
  04-13 19:10:40.294: E/AndroidRuntime(17573): java.lang.NoSuchMethodError: org.anddev.andengine.entity.shape.Shape.getVelocityX
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at org.anddev.andengine.extension.physics.box2d.PhysicsFactory.createCircleBody(PhysicsFactory.java:118)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at org.anddev.andengine.extension.physics.box2d.PhysicsFactory.createCircleBody(PhysicsFactory.java:105)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at com.k.hockeygame.HockeyGame.onLoadScene(HockeyGame.java:80)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at org.anddev.andengine.ui.activity.BaseGameActivity.doResume(BaseGameActivity.java:161)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at org.anddev.andengine.ui.activity.BaseGameActivity.onWindowFocusChanged(BaseGameActivity.java:85)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:2451)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.view.View.dispatchWindowFocusChanged(View.java:7440)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:930)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:2927)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.os.Handler.dispatchMessage(Handler.java:99)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.os.Looper.loop(Looper.java:137)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at android.app.ActivityThread.main(ActivityThread.java:5226)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at java.lang.reflect.Method.invokeNative(Native Method)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at java.lang.reflect.Method.invoke(Method.java:511)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
  4-13 19:10:40.294: E/AndroidRuntime(17573):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
  04-13 19:10:40.294: E/AndroidRuntime(17573):    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>