0

我正在用andengine开发一个游戏。我有玩家。有一些敌人会随着MoveModifier随机出现,它们是精灵。我想要:plyer射出子弹,子弹接触敌人,敌人将是隐形的。如何我可不可以做?

子弹

  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);

敌人

      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);
                } 

         }};
4

2 回答 2

2

这是与您的游戏类似的游戏。在这些示例中是碰撞检测示例:

使用andengine的简单安卓游戏教程

改进版游戏

于 2012-06-04T05:00:57.080 回答
1

检测碰撞的一种方法是将子弹和敌人都视为矩形并检测矩形是否碰撞,检查以了解如何检测矩形之间的碰撞。

否则,请查看教程以了解如何检测任何形状的两个物体之间的碰撞。

于 2012-06-02T11:02:45.087 回答