2012-06-02 3 views
0

Я разрабатываю игру by andengine.I имеет игрока. И есть враги, которые приходят случайным временем с MoveModifier, и они спрайты. Я хочу: Пликер стреляет пулей, а пуля касается противника, враг будет невидим. Как я могу это сделать?Обнаружение столкновения пулей

пуля

private Runnable mStartCircle1 = new Runnable() { 

      public void run() { 
       final Scene scene= HelicopterActivity.this.mEngine.getScene(); 



       float velocityOfCircleC=1.6f; 
        float startXC=player.getX()+50; 
        float finishXC=800; 
        float startYC=player.getY()+15; 
        float finishYC=startYC; 

        bullet=new Sprite(startXC, startYC, HelicopterActivity.this.gasTextureRegion); 
        bullet.registerEntityModifier(
          (IEntityModifier) new SequenceEntityModifier (
            new MoveModifier(velocityOfCircleC, bullet.getX(), finishXC, bullet.getY(), finishYC))); 

        scene.attachChild(bullet); 

Enemy

 int j=0, k=0; 
    private Runnable mStartCircle = new Runnable() { 

     public void run() { 
      final Scene scene= HelicopterActivity.this.mEngine.getScene(); 

      float startY=randomNumber.nextInt(670 - 1); 
      float velocityOfCircle=6; 
      enemy[j] = new Sprite(800, startY, HelicopterActivity.this.enemyTextureRegion); 
      enemy[j].registerEntityModifier(
        (IEntityModifier) new SequenceEntityModifier (
           new MoveModifier(velocityOfCircle, enemy[j].getX(), -128, 
             enemy[j].getY(), enemy[j].getY()))); 
      scene.attachChild(enemy[j]); 

      float startY2=randomNumber.nextInt(670 - 1); 
      float velocityOfCircle2=10; 
      enemy2[k] = new Sprite(800, startY2, HelicopterActivity.this.enemy2TextureRegion); 
      enemy2[k].registerEntityModifier(
        (IEntityModifier) new SequenceEntityModifier (
           new MoveModifier(velocityOfCircle2, enemy2[k].getX(), -128, 
             enemy2[k].getY(), enemy2[k].getY()))); 
      scene.attachChild(enemy2[k]); 






      k++; 
      j++; 

      if (k<50){ 
       mHandler.postDelayed(mStartCircle,5000); 
      } 

    }}; 


       if (i<1000){ 
        mHandler.postDelayed(mStartCircle1,1000); 
       } 

     }}; 

ответ

1

Один из способов обнаружения столкновения является лечение пули и врага как в виде прямоугольников и обнаружить ли прямоугольники встречными или нет, проверить this знать, как определить столкновение между прямоугольниками.

В противном случае ознакомьтесь с инструкцией this, чтобы узнать, как обнаружить столкновение между двумя телами любой формы.

Смежные вопросы