2016-04-08 17 views
-1

benim kötü İngiliz İlk üzgün ...

Senaryo: Ben sprite
1. Oyuncu
2. Engel
3. Dikdörtgen (Rastgele X Koordinat üret) (Engel çocuk yük 3 tür
Rastgele Oluşturulan Sprite AndEngine ile Collide Nasıl Tespit Edilir?

Her saniye için otomatik üretme engeli yarattım, Yarattıktan sonra engel yer çekimi ile düşecek.
Her engelin çocuğu olarak dikdörtgeni vardır. Bu dikdörtgeni oyuncuyla çarpışmayı algılamak için kullanacağım.
Eğer oyuncu i skoru değiştirmeye gerek bu dikdörtgenin ile çarpışır ve oyuncu engel vurursan ben bir ContactListener ihtiyaç

_scene.registerUpdateHandler(new TimerHandler(0.5f, true, new ITimerCallback() { 

     @Override 
     public void onTimePassed(TimerHandler pTimerHandler) { 
      int _coorx = randInt(0,_constants.CAMERA_WIDTH); 

      // OBSTACLE 
      _obstacle = new Sprite(_coorx, -50, _obstacletr, getVertexBufferObjectManager()); 
      _obstaclefd = PhysicsFactory.createFixtureDef(10.0f, 1.0f, 0.0f); 
      _obstaclebody = PhysicsFactory.createCircleBody(_physicsworld, _obstacle, BodyType.DynamicBody, _obstaclefd); 
      _physicsworld.registerPhysicsConnector(new PhysicsConnector(_obstacle, _obstaclebody, true, false)); 

      // OBSTACLE RECTANGLE 
      _obstaclerectangle = new Rectangle(-_coorx, 0, _constants.CAMERA_WIDTH, 5, getVertexBufferObjectManager()); 
      _obstaclerectangle.registerUpdateHandler(new IUpdateHandler(){ 

       @Override 
       public void onUpdate(float pSecondsElapsed) { 
        if(_obstaclerectangle.collidesWith(_player1)) { 
         _obstaclerectangle.setColor(1, 0, 0); 
        } else { 
         _obstaclerectangle.setColor(0, 1, 0); 
        } 
       } 

       @Override 
       public void reset() { 
        // TODO Auto-generated method stub 

       } 

      }); 
      _obstacle.attachChild(_obstaclerectangle); 

      _scene.attachChild(_obstacle); 
     } 

    })); 

cevap

0

oyuncuya öldürmek gerekir.

public class Collider implements ContactListener {...} 

Sonra dünyaya olarak carpistiricisi sınıfını ekleyin:

youPhysicworld.setContactListener(collider); 

sınıf Çarpıştırıcısı size olacak yöntemlerini uygulamak kuvvet

ContactListener uygulayan bir carpistiricisi sınıf oluşturun Fiziksel bir olay (başlangıç ​​ContactContact, endCOntact, preSolve, postSolve) olduğunda çağrılır. Bu yöntemlerde, olayları istediğiniz gibi halledebilirsiniz.

+0

zaten çözüldü .. Dizi dizinlerini denetleyerek tüm nesneyi algılayarak sprite ve onUpdate'i kaydetmek için dizi kullandım. Ama senin çözümün için thank'ı diğer problemler için kullanabilirim –

İlgili konular