Example usage for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser BehaviorTreeParser

List of usage examples for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser BehaviorTreeParser

Introduction

In this page you can find the example usage for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser BehaviorTreeParser.

Prototype

public BehaviorTreeParser(int debug) 

Source Link

Usage

From source file:com.badlogic.gdx.ai.tests.BehaviorTreeViewer.java

License:Apache License

@Override
public void create() {
    step = 0;/*  w w w  .ja  va 2s.  co  m*/
    taskNodes = new ObjectMap<Task<Dog>, TaskNode>();
    BehaviorTreeParser<Dog> parser = new BehaviorTreeParser<Dog>(BehaviorTreeParser.DEBUG_NONE);
    BehaviorTree<Dog> tree = parser.parse(Gdx.files.internal("data/dog.tree"), null);
    dog = new Dog("Dog 1", tree);
    tree.addListener(new BehaviorTree.Listener<Dog>() {
        @Override
        public void statusUpdated(Task<Dog> task, Task.Status previousStatus) {
            TaskNode tn = taskNodes.get(task);
            tn.updateStatus(previousStatus, step);
        }

        @Override
        public void childAdded(Task<Dog> task, int index) {
            TaskNode parentNode = taskNodes.get(task);
            Task<Dog> child = task.getChild(index);
            addToTree(displayTree, parentNode, child, null, 0);
            displayTree.expandAll();
        }
    });
    KryoUtils.initKryo();
    skin = new Skin(Gdx.files.internal("data/uiskin.json"));

    treeStatus = SUSPENDED;

    runDelaySlider = new Slider(0, 5, 0.01f, false, skin);
    runDelaySlider.setValue(.5f);

    runButton = new TextButton("Run", skin);

    stepButton = new TextButton("Step", skin);

    loadButton = new TextButton("Load", skin);
    loadButton.setDisabled(true);

    saveButton = new TextButton("Save", skin);

    stepLabel = new Label(new StringBuilder(LABEL_STEP + step), skin);

    stage = new Stage(new ScreenViewport());

    Table table = new Table();
    table.row().height(20).fillX();
    table.add(runDelaySlider);
    table.add(runButton);
    table.add(stepButton);
    table.add(saveButton);
    table.add(loadButton);
    table.add(stepLabel);
    table.row();
    displayTree = new Tree(skin);

    redrawTree();

    table.add(displayTree).colspan(3).fillX().fillY().expand(true, true);

    stage.addActor(table);
    table.setFillParent(true);

    saveButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            save();
            saved = true;
            loadButton.setDisabled(false);
        }
    });

    loadButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            load();
        }
    });

    stepButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            treeStatus = STEP; // step();
        }
    });

    runButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (treeStatus == SUSPENDED) {
                treeStatus = RUNNING;
                delay = runDelaySlider.getValue(); // this makes it start immediately
                runButton.setText("Suspend");
                stepButton.setDisabled(true);
                saveButton.setDisabled(true);
                loadButton.setDisabled(true);
            } else {
                treeStatus = SUSPENDED;
                runButton.setText("Run");
                stepButton.setDisabled(false);
                saveButton.setDisabled(false);
                loadButton.setDisabled(!saved);
            }
        }
    });

    Gdx.input.setInputProcessor(stage);

    setScreen(this);
}

From source file:com.mygdx.entities.DynamicEntities.DogEntities.DogEntity.java

@Override
public void init(World world) {
    super.init(world);
    body.setLinearDamping(5.0f);/*from w w w  . j  av a 2s.c  o m*/

    //ai
    Reader reader = null;
    try {
        reader = Gdx.files.internal("ai/stella.tree").reader();
        BehaviorTreeParser<DogEntity> parser = new BehaviorTreeParser<DogEntity>(BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }

}

From source file:com.mygdx.entities.DynamicEntities.enemies.Enemy_TestMon.java

@Override
public void init(World world) {
    super.init(world);
    EnemyManager.add(this);

    //ai//from  ww w.  j  ava2 s.  c  o m
    Reader reader = null;
    try {
        //read this file in resource manager
        reader = Gdx.files.internal("ai/patrol.tree").reader();
        BehaviorTreeParser<EnemyEntity> parser = new BehaviorTreeParser<EnemyEntity>(
                BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }
}

From source file:com.mygdx.entities.DynamicEntities.enemies.En_Goober.java

@Override
public void init(World world) {
    super.init(world);

    body.createFixture(attFd1).setUserData(sensordata);
    body.createFixture(attFd2).setUserData(sensordata);
    body.createFixture(attFd3).setUserData(sensordata);
    body.createFixture(attFd4).setUserData(sensordata);

    //ai//from   w  w w.j  av  a2 s  . c o m
    Reader reader = null;
    try {
        //read this file in resource manager
        reader = Gdx.files.internal("ai/enemies/en_goober2.tree").reader();
        BehaviorTreeParser<EnemyEntity> parser = new BehaviorTreeParser<EnemyEntity>(
                BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }
}

From source file:com.mygdx.game.overworld.java

private void createplayer() {
    Reader reader = null;//from w w  w .  ja  v a2s  .  c om
    try {
        reader = Gdx.files.internal("player.tree").reader();
        BehaviorTreeParser<player> parser = new BehaviorTreeParser<player>(BehaviorTreeParser.DEBUG_HIGH);
        BehaviorTree<player> btree = parser.parse(reader, p = new player());

        p.btree = btree;
        p.playerlocation = p.playerlocation.Maki;
        p.pstate = p.pstate.overworld;
        p.pdirY = p.pdirY.non;
        p.pdirX = p.pdirX.non;
        p.x = 400;
        p.y = 260;
        owpathfinding = new overworldpathfinding(p, townnodes);
        p.funds = 1000;

    } finally {

        StreamUtils.closeQuietly(reader);
    }
}