android - AndEngine:注册和注销物理连接器的问题

标签 android box2d sprite andengine

问题来了:我有一个人物,它既有 Sprite 又有 body 。这个数字是可拖动的,在触摸事件的 Action Down 上,我需要 body 断开连接,这样它在被拖动时就不会与其他 body 发生碰撞。然后在 Action Up body 上应该连接到 sprite。我定义了两种方法来解决这个问题。

protected void connectBody() {
            if (!bodyConnected) {
                    connector = new PhysicsConnector(mSprite, mBody, true, true);
                    mPhysicsWorld.registerPhysicsConnector(connector);
                    bodyConnected = true;
            }
    }

protected void disconnectBody() {
            if (bodyConnected) {
                    if (connector != null) {
                            mPhysicsWorld.unregisterPhysicsConnector(connector);
                    }
                    bodyConnected = false;
            }
    }

但是,这是行不通的。当我拖动图形时,它会与其他图形发生碰撞。谁能帮我解决这个问题?非常感谢。

最佳答案

我几天前玩过它,这就是我拖动对象所做的。

public boolean onAreaTouched( final TouchEvent pSceneTouchEvent, final ITouchArea pTouchArea,final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
        if(pSceneTouchEvent.isActionDown()) {
            final AnimatedSprite area = (AnimatedSprite) pTouchArea;
            PhysicsConnector tPhysicsConnector;
            tPhysicsConnector = physicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(area);
            physicsWorld.unregisterPhysicsConnector(tPhysicsConnector);
            physicsWorld.destroyBody(tPhysicsConnector.getBody()); 

        }

关于android - AndEngine:注册和注销物理连接器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5883219/

相关文章:

css - Sprite 图像的响应式悬停效果 - 无法使其工作

cocos2d-iphone - 在 Sprite 外部的 anchor 上旋转 cocos2d Sprite

iphone - 如何对 Box2D 物体施加恒定的力?

php - 如何获取服务器上用户的日历信息?

android - 从使用 Widget.EditText 样式的 TextView 中删除下划线

android - NdefRecord 崩溃是设备相关的

java - Box2d 直升机物理

java - 如何获取 Box2D 多边形的坐标?

android - SetTexture 和 Sprites 没有按预期工作! (LibGDX)

json - gson和json有什么区别?