【问题标题】:Bullet Collision Detection子弹碰撞检测
【发布时间】:2012-06-02 10:53:56
【问题描述】:

我正在用 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);
                } 

         }};

【问题讨论】:

    标签: android box2d sprite andengine bullet


    【解决方案1】:

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

    Simple android game tutotrial using andengine

    Improved version of the game

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2016-09-08
        • 1970-01-01
        相关资源
        最近更新 更多