2

我在andengine中做了一个赛车游戏,通过MoveModifier(),汽车在运动。汽车同时是dynamicBody,但是运动时汽车的dynamicBody特性会丢失。

(敌人 1=汽车)

Sprite enemy1=new Sprite(0,0,this.enemyRegion1);
         enemy1.registerEntityModifier(
                    (IEntityModifier) new SequenceEntityModifier (
                            new MoveModifier(10, enemy1.getX(),  enemy1.getX()+400, 
                                    enemy1.getY(), enemy1.getY())));
        final Vector2 velocity = Vector2Pool.obtain(5, 5);

        final FixtureDef enemyFixtureDef1 = PhysicsFactory.createFixtureDef(0, 0, 0);
        this.enemyBody1 = PhysicsFactory.createBoxBody(this.mPhysicsWorld, enemy1, BodyType.DynamicBody, enemyFixtureDef1);
        this.enemyBody1.setLinearVelocity(velocity);
        Vector2Pool.recycle(velocity);
        this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(enemy1, this.enemyBody1, true, false));






        this.scene.attachChild(enemy1);
4

1 回答 1

2

您不能使用 MoveModifier 移动物理实体,它仅适用于没有 PhysicsConnector 的 Sprite。连接只有一种方式,从 Box2D 引擎到在其之上工作的 AndEngine。您将不得不在物理方面管理汽车运动,并且精灵将跟随身体。不是反过来。

于 2012-05-27T16:17:38.567 回答