Necesita ayuda en Android juego de coches

Estoy desarrollando un juego de coches 2D para mi proyecto de la Universidad.

Lo he desarrollado hasta el punto de que el coche del usuario puede moverse y los coches de tráfico vienen de arriba. Pero no tengo ni idea de cómo destruir el coche del usuario cuando se combinó con un coche de tráfico. ¿Puede alguien decir cómo detectar la colisión y después de que cómo destruirlo.

public class MainActivity extends BaseGameActivity{ Scene scene; // declare a scene object protected static final float CAMERA_WIDTH = 800; // define camera width protected static final float CAMERA_HEIGHT = 520; //define camera height /*----- background -----------*/ BitmapTextureAtlas backbitmapTextureAtlas; // declare a bitmap texture ITextureRegion backiTextureRegion; // declare ai texture region to hold image Sprite backsPlayer; // sprite to display the image PhysicsWorld backpWorld; SensorManager backsensor; Vector2 backvec; ITexture backparallax_background; protected VertexBufferObjectManager backvbom; org.andengine.engine.camera.Camera camera; /*----- /background -----------*/ /*----user's car---------*/ BitmapTextureAtlas bitmapTextureAtlas; ITextureRegion iTextureRegion; Vector2 vec; PhysicsWorld pWorld; SensorManager sensor; Sprite sPlayer; /*----/user's car---------*/ /*------ traffic cars----------*/ BitmapTextureAtlas bitmapTextureAtlasTraffic1; ITextureRegion iTextureRegionTraffic1; Sprite sPlayerTraffic1; BitmapTextureAtlas bitmapTextureAtlasTraffic2; ITextureRegion iTextureRegionTraffic2; Sprite sPlayerTraffic2; BitmapTextureAtlas bitmapTextureAtlasTraffic3; ITextureRegion iTextureRegionTraffic3; Sprite sPlayerTraffic3; BitmapTextureAtlas bitmapTextureAtlasTraffic4; ITextureRegion iTextureRegionTraffic4; Sprite sPlayerTraffic4; MoveXModifier mod1; MoveXModifier mod2; MoveXModifier mod3; MoveXModifier mod4; /*------ /traffic cars----------*/ @Override public EngineOptions onCreateEngineOptions() { // TODO Auto-generated method stub camera = new org.andengine.engine.camera.Camera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT); // create camera EngineOptions options= new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT), camera); //create engine options return options; } @Override public void onCreateResources( OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception { // TODO Auto-generated method stub /* ---------------parallax back code------------------*/ backparallax_background = new AssetBitmapTexture(this.getTextureManager(), this.getAssets(), "gfx/back2.png"); backiTextureRegion = TextureRegionFactory.extractFromTexture(this.backparallax_background); this.backparallax_background.load(); /* ---------------/parallax back code------------------*/ loadGfx(); // load user's car loadTraffic(); pOnCreateResourcesCallback.onCreateResourcesFinished(); } /*--------load traffic cars------------*/ private void loadTraffic() { // TODO Auto-generated method stub BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); // give the path of image folder bitmapTextureAtlasTraffic1 = new BitmapTextureAtlas(getTextureManager(), 256, 256);// create a bit map to hold the picture and give size according to the image iTextureRegionTraffic1 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bitmapTextureAtlasTraffic1, this, "traffic1.png", 0,0); bitmapTextureAtlasTraffic1.load(); //----- traffic 2-------------- bitmapTextureAtlasTraffic2 = new BitmapTextureAtlas(getTextureManager(), 256, 256);// create a bit map to hold the picture and give size according to the image iTextureRegionTraffic2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bitmapTextureAtlasTraffic2, this, "traffic2.png", 0,0); bitmapTextureAtlasTraffic2.load(); //----- traffic 3-------------- bitmapTextureAtlasTraffic3 = new BitmapTextureAtlas(getTextureManager(), 256, 256);// create a bit map to hold the picture and give size according to the image iTextureRegionTraffic3 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bitmapTextureAtlasTraffic3, this, "traffic3.png", 0,0); bitmapTextureAtlasTraffic3.load(); //----- traffic 4-------------- bitmapTextureAtlasTraffic4 = new BitmapTextureAtlas(getTextureManager(), 256, 256);// create a bit map to hold the picture and give size according to the image iTextureRegionTraffic4 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bitmapTextureAtlasTraffic4, this, "traffic4.png", 0,0); bitmapTextureAtlasTraffic4.load(); } /*--------load user's car------------*/ private void loadGfx() { // TODO Auto-generated method stub BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); // give the path of image folder bitmapTextureAtlas = new BitmapTextureAtlas(getTextureManager(), 256, 256);// create a bit map to hold the picture and give size according to the image iTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bitmapTextureAtlas, this, "usercar.png", 0,0); bitmapTextureAtlas.load(); } /*--------load user's car------------*/ @Override public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception { // TODO Auto-generated method stub scene = new Scene(); // create the object of scene /*------ parallax background---------*/ final AutoParallaxBackground auto_background = new AutoParallaxBackground(0, 0, 0, 200); final Sprite background_sprite = new Sprite(0,0, this.backiTextureRegion,backvbom); auto_background.attachParallaxEntity(new ParallaxEntity(1.7f,background_sprite)); scene.setBackground(auto_background); pOnCreateSceneCallback.onCreateSceneFinished(scene); } @Override public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception { // TODO Auto-generated method stub // set traffic car1 sPlayerTraffic1 = new Sprite(10,350,iTextureRegionTraffic1,this.mEngine.getVertexBufferObjectManager()); sPlayerTraffic2 = new Sprite(300,280,iTextureRegionTraffic2,this.mEngine.getVertexBufferObjectManager()); sPlayerTraffic3 = new Sprite(400,190,iTextureRegionTraffic3,this.mEngine.getVertexBufferObjectManager()); sPlayerTraffic4 = new Sprite(50,70,iTextureRegionTraffic4,this.mEngine.getVertexBufferObjectManager()); mod1=new MoveXModifier(5,-600,800){ @Override protected void onModifierFinished(IEntity pItem) { // TODO Auto-generated method stub Random r = new Random(); int y = r.nextInt(370-350)+350;// set y randomly int speed = r.nextInt(3-2)+3; // set speed randomly sPlayerTraffic1.setY(y); // set y int x = r.nextInt(800-500)+200; // set x randomly x = -x; mod1.reset(speed, x, 800); super.onModifierFinished(pItem); } };// moving down the traffic1 car mod2=new MoveXModifier(4,200,800){ @Override protected void onModifierFinished(IEntity pItem) { // TODO Auto-generated method stub Random r = new Random(); int y = r.nextInt(300-285)+285; // set y randomly int speed = r.nextInt(5-3)+3; // set speed randomly sPlayerTraffic2.setY(y); // set y int x = r.nextInt(600-200)+200; // set x randomly x = -x; mod2.reset(speed, x, 800); super.onModifierFinished(pItem); } };// moving down the traffic2 car mod3=new MoveXModifier(3,-600,800){ @Override protected void onModifierFinished(IEntity pItem) { // TODO Auto-generated method stub Random r = new Random(); int y = r.nextInt(190-150)+150; int speed = r.nextInt(3-2)+2; if(speed == 2){ y = 150; } sPlayerTraffic3.setY(y); int x = r.nextInt(2000-800)+800; x = -x; mod3.reset(speed, x, 800); super.onModifierFinished(pItem); } };// moving down the traffic3 car mod4=new MoveXModifier(3,50,800){ @Override protected void onModifierFinished(IEntity pItem) { // TODO Auto-generated method stub Random r = new Random(); int y = r.nextInt(100-70)+70; int speed = r.nextInt(3-2)+2; sPlayerTraffic4.setY(y); int x = r.nextInt(600-200)+200; x = -x; mod4.reset(speed, x, 800); super.onModifierFinished(pItem); } };// moving down the traffic4 car sPlayerTraffic1.registerEntityModifier(mod1); sPlayerTraffic2.registerEntityModifier(mod2); sPlayerTraffic3.registerEntityModifier(mod3); sPlayerTraffic4.registerEntityModifier(mod4); //now set the x,y coordination of the image to display the right position we want sPlayer = new Sprite(500,350,iTextureRegion,this.mEngine.getVertexBufferObjectManager()){ // user's car x,y // touch event for user's car @Override public boolean onAreaTouched(org.andengine.input.touch.TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { this.setPosition(500 , pSceneTouchEvent.getY()); //website code this.setPosition(pSceneTouchEvent.getX(), this.getY()); //Detects if player is outside of bounds final float width = this.getWidth(); final float height = this.getHeight(); float x = pSceneTouchEvent.getX() - width / 2 ; float y = pSceneTouchEvent.getY() - height / 2; if (x < 0) x = 0; if (y < 65) // right side of the road y = 65; if (x > (CAMERA_WIDTH - width)) x = CAMERA_WIDTH - width; if (y > (CAMERA_HEIGHT - height-70)) // left side of the road y = (CAMERA_HEIGHT - height-70); this.setPosition(500, y); return true; } }; //touch ---------------------------------------------------------- scene.registerTouchArea(sPlayer); //----------------------------------------------------------------- this.scene.attachChild(sPlayer); this.scene.attachChild(sPlayerTraffic1); this.scene.attachChild(sPlayerTraffic2); this.scene.attachChild(sPlayerTraffic3); this.scene.attachChild(sPlayerTraffic4); pOnPopulateSceneCallback.onPopulateSceneFinished(); } 

}

 private ContactListener createContactListener() { ContactListener contactListener = new ContactListener() { @Override public void beginContact(Contact contact) { final Fixture x1 = contact.getFixtureA(); final Fixture x2 = contact.getFixtureB(); if(x1==PlayerBody && x2==EnemyBody){ DestroyMethod(); } } }; return contactListener; } YourPhysicsWorld.setContactListener(createContactListener()); private void DestroyMethod(){ YourPhysicsWorld.destroyBody(EnemyBody); } 
  • EglSwapBuffers falló: EGL_BAD_ALLOC AndEngine Android
  • desbloqueo de niveles en la lógica del juego de Android
  • Cambiar de AndEngine a libgdx - qué saber?
  • ¿Cómo crear nieve en AndEngine?
  • Puerto Andengine juego a otra plataforma?
  • ¿Cuál es el tamaño máximo de la textura (Andengine)
  • AndEngine - SpriteGroup parpadea en el nuevo attachChild
  • AndEngine dibujar line onSceneTouchEvent
  • SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
  • Trabajar con nuevo AndEngine
  • Cómo cambiar la capa Sprite en andengine
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.