使用Box2D和AndEngine投掷一个球

时间:2014-03-12 19:57:16

标签: android box2d andengine

第1部分有没有人知道如何创建一个球,当你拖动它然后松开它会与物理一起向同一个方向投掷?我已经将球作为精灵创造了所有东西并将其变成了物理对象。只需要知道如何做到这一点。我正在考虑使用ontouch运动事件和东西,但我认为只会让球移动到我的手指所在的地方,然后放下我没有任何速度释放的地方。

我不是在谈论愤怒的小鸟式吊带,我说的是触摸球然后用手指轻扫,然后球的方向与滑动方向相同。

第2部分 我做了一些研究,发现通过滑动使物理对象移动是必要的,使用鼠标关节。到目前为止,我已经完成了所有工作,但我现在只有一个小问题。基本上我的游戏就是现在,如果我点击场景中的任何地方,球会以物理方式使用此代码向它移动:

@Override
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {

        if (pSceneTouchEvent.isActionDown()) {
            mouseJointDef.target.set(ball1Body.getWorldCenter());
            mouseJoint = (MouseJoint) mPhysicsWorld.createJoint(mouseJointDef);
            final Vector2 vec = Vector2Pool.obtain(pSceneTouchEvent.getX()
                    / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT,
                    pSceneTouchEvent.getY()
                            / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT);
            mouseJoint.setTarget(vec);
            Vector2Pool.recycle(vec);
        } else if (pSceneTouchEvent.isActionMove()) {
            final Vector2 vec = Vector2Pool.obtain(pSceneTouchEvent.getX()
                    / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT,
                    pSceneTouchEvent.getY()
                            / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT);
            mouseJoint.setTarget(vec);
            Vector2Pool.recycle(vec);
            return true;
        } else if (pSceneTouchEvent.isActionCancel()
                || pSceneTouchEvent.isActionOutside()
                || pSceneTouchEvent.isActionUp()) {
            mPhysicsWorld.destroyJoint(mouseJoint);
        }
        return true;

    }

我将如何改变这一点,以便在刷球时它将朝着滑动的方向移动,而不是点击场景。

谢谢

0 个答案:

没有答案