Andengine 2d横向滚动角色动作

时间:2011-12-21 13:48:18

标签: android andengine

我这里有一个脚本:

final FixtureDef characterfictur = PhysicsFactory.createFixtureDef(0.5f, 0.1f,0.1f); // Maybe other fixture?

this.mScene.registerUpdateHandler(this.mPhysicsWorld);

final Body body = PhysicsFactory.createBoxBody(this.mPhysicsWorld, charactersprite, BodyType.DynamicBody, characterfictur);

this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(charactersprite, body, true, false));
mScene.attachChild(charactersprite);

createUnwalkableObjects(mTMXTiledMap);
// HUD
HUD my = new HUD();
Sprite forward = new Sprite( 50, CAMERA_HEIGHT - 170, forwardr) {
    @Override
    public boolean onAreaTouched(TouchEvent pEvent, float pX, float pY) {
        if(!pEvent.isActionUp()) {
            charactersprite.getTextureRegion().setFlippedHorizontal(false);
            body.setLinearVelocity(new Vector2(CHAR_MOVING_SPEED,body.getLinearVelocity().y)); // Velocity
            //body.applyLinearImpulse(new Vector2(2,0), body.getPosition());
        } else {
            //body.applyLinearImpulse(new Vector2(0,0), body.getPosition());
            body.setLinearVelocity(new Vector2(0,body.getLinearVelocity().y)); // LinearVelocity
        }
        return false;

    }
};

和小前锋:

private void createUnwalkableObjects(TMXTiledMap map) {
// Loop through the object groups

    for(final TMXObjectGroup group: map.getTMXObjectGroups()) {

        //if(group.getTMXObjectGroupProperties().containsTMXProperty("Zeme", "true")){
            // This is our "wall" layer. Create the boxes from it

        for(final TMXObject object : group.getTMXObjects()) {

            final Rectangle rect = new Rectangle(object.getX(), object.getY(),object.getWidth(), object.getHeight());
            final FixtureDef boxFixtureDef = PhysicsFactory.createFixtureDef(0, 0,3f);
            PhysicsFactory.createBoxBody(this.mPhysicsWorld, rect, BodyType.StaticBody, boxFixtureDef);
            rect.setVisible(false);
            mScene.attachChild(rect);
        }
        //}
    }
}

所以,当我移动角色时,它移动非常奇怪。散步时会感到不安。那么,也许我需要更换灯具,或者使用其他移动方法?

1 个答案:

答案 0 :(得分:1)

我建议使用fixedPhysicsWorld和fixedStepEngine。这将摆脱'紧张'当水平首次开始时你可能想要“准备好”!提示等待几秒钟让物理引擎加速,因为它往往开始有点慢然后加速。