【问题标题】:Sprite collisions in android andengineandroid和engine中的精灵碰撞
【发布时间】:2012-04-24 19:01:22
【问题描述】:

我正在用andengine 开发一个简单的游戏。 我有 10 个球在屏幕上随机移动。我将球作为精灵中的图片导入。如果它们在相同的坐标上移动,它们会通过它们自己的内部。但我想要:如果它们以相同的坐标移动,它们应该改变他们的方向。所以他们不能通过他们的内部。我该怎么做?

   private Runnable mStartCircle = new Runnable() {
      public void run() {
        int i = circleNumber++;
        Scene scene = Level1Activity.this.mEngine.getScene();
        float startY = -64.0f;
        float startX = randomNumber.nextFloat()*(CAMERA_WIDTH-70.0f);
        float a= randomNumber.nextFloat()*(CAMERA_WIDTH-70.0f);
        circles[i] = new Sprite(startX, startY, textRegCircle[i]);
        circles[i].registerEntityModifier(
                (IEntityModifier) new SequenceEntityModifier (
                            new MoveModifier(10.0f, circles[i].getX(),  a, 
                                    circles[i].getY(),CAMERA_HEIGHT+64.0f)));
        }
        scene.getLastChild().attachChild(circles[i]);
        if (circleNumber < 10){
            mHandler.postDelayed(mStartCircle,1000);
        }
    }
 };

【问题讨论】:

    标签: android collision-detection sprite andengine collision


    【解决方案1】:

    每个对象(球)都需要一个边界框,或者在你的情况下是一个边界圆,它等于你的精灵的大小。

    当游戏更新并且任何球的位置发生变化时,您必须测试碰撞。

    圆到圆的碰撞测试是最简单的类型。 如果 (ball1.pos + ball2.pos) 之间的距离小于 (ball1.radius + ball2.radius) = 碰撞。

    然后你通过反转速度或计算新的动量或其他东西来处理碰撞。 (您还需要将物体分开,以免它们发生碰撞)

    【讨论】:

      【解决方案2】:

      只需在球之间应用物理连接器:

      所以它会碰撞并反弹回来。

      final FixtureDef boxFixtureDef = PhysicsFactory.createFixtureDef(0.1f, 0.5f, 0.5f);
      final Body ballBody = PhysicsFactory.createBoxBody(this.mPhysicsWorld, circles[i],BodyType.DynamicBody, boxFixtureDef);
      this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(circles[i], ballBody, true, true));
      this.mScene.attachChild(circles[i]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-14
        相关资源
        最近更新 更多