List of usage examples for com.badlogic.gdx.utils ObjectMap ObjectMap
public ObjectMap()
From source file:com.badlogic.ashley.tests.utils.Timer.java
License:Apache License
public Timer() { times = new ObjectMap<String, Long>(); }
From source file:com.badlogic.gdx.ai.tests.BehaviorTreeViewer.java
License:Apache License
@Override public void create() { step = 0;/*from w w w. j av a 2 s .c om*/ 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.badlogic.gdx.ai.tests.btree.BehaviorTreeViewer.java
License:Apache License
public BehaviorTreeViewer(BehaviorTree<E> tree, boolean loadAndSave, Skin skin) { super(skin);// ww w . j av a2s .c om this.tree = tree; step = 0; taskNodes = new ObjectMap<Task<E>, TaskNode>(); tree.addListener(new BehaviorTree.Listener<E>() { @Override public void statusUpdated(Task<E> task, Task.Status previousStatus) { TaskNode tn = taskNodes.get(task); if (tn != null) tn.updateStatus(previousStatus, step); } @Override public void childAdded(Task<E> task, int index) { TaskNode parentNode = taskNodes.get(task); Task<E> child = task.getChild(index); addToTree(displayTree, parentNode, child, null, 0); displayTree.expandAll(); } }); treeStatus = BT_SUSPENDED; runDelaySlider = new Slider(0, 5, 0.01f, false, skin); runDelaySlider.setValue(.5f); runButton = new TextButton("Run", skin); runButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (treeStatus == BT_SUSPENDED) { treeStatus = BT_RUNNING; runDelayAccumulator = runDelaySlider.getValue(); // this makes it start immediately runButton.setText("Suspend"); stepButton.setDisabled(true); if (saveButton != null) saveButton.setDisabled(true); if (loadButton != null) loadButton.setDisabled(true); } else { treeStatus = BT_SUSPENDED; runButton.setText("Run"); stepButton.setDisabled(false); if (saveButton != null) saveButton.setDisabled(false); if (loadButton != null) loadButton.setDisabled(!saved); } } }); stepButton = new TextButton("Step", skin); stepButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { treeStatus = BT_STEP; } }); resetButton = new TextButton("Reset", skin); resetButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { BehaviorTreeViewer.this.tree.reset(); rebuildDisplayTree(); } }); if (loadAndSave) { loadButton = new TextButton("Load", skin); loadButton.setDisabled(true); loadButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { load(); } }); saveButton = new TextButton("Save", skin); saveButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { save(); saved = true; loadButton.setDisabled(false); } }); } stepLabel = new Label(new StringBuilder(LABEL_STEP + step), skin); this.row().height(26).fillX(); this.add(runDelaySlider); this.add(runButton); this.add(stepButton); this.add(resetButton); if (loadAndSave) { this.add(saveButton); this.add(loadButton); } this.add(stepLabel); this.row(); displayTree = new Tree(skin); rebuildDisplayTree(); this.add(displayTree).colspan(5 + (loadAndSave ? 2 : 0)).grow(); }
From source file:com.badlogic.gdx.rube.test.SpriteRenderer.java
public SpriteRenderer() { sprites = new Array<RubeSprite>(); polygonSprites = new Array<RubePolygonSprite>(); textureMap = new ObjectMap<String, Texture>(); }
From source file:com.badlogic.gdx.tests.g3d.ShaderLoader.java
License:Apache License
protected ObjectMap<String, String> parse(final FileHandle file) { ObjectMap<String, String> result = new ObjectMap<String, String>(); BufferedReader reader = file.reader(1024); String line;/* www.j a va2 s . c om*/ String snipName = ""; stringBuilder.setLength(0); int idx; try { while ((line = reader.readLine()) != null) { if (line.length() > 3 && line.charAt(0) == '[' && (idx = line.indexOf(']')) > 1) { if (snipName.length() > 0 || stringBuilder.length() > 0) result.put(snipName, stringBuilder.toString()); stringBuilder.setLength(0); snipName = line.substring(1, idx); } else stringBuilder.append(line.trim()).append("\r\n"); } } catch (IOException e) { throw new GdxRuntimeException(e); } if (snipName.length() > 0 || stringBuilder.length() > 0) result.put(snipName, stringBuilder.toString()); return result; }
From source file:com.betmansmall.game.gameLogic.mapLoader.MapLoader.java
License:Apache License
/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the * constructor of this class. By default it will resolve to an internal file. * @param fileName the filename/*from ww w . ja va2 s .co m*/ * @param parameters specifies whether to use y-up, generate mip maps etc. * @return the TiledMap */ public TiledMap load(String fileName, MapLoader.Parameters parameters) { try { this.convertObjectToTileSpace = parameters.convertObjectToTileSpace; this.flipY = parameters.flipY; FileHandle tmxFile = resolve(fileName); root = xml.parse(tmxFile); ObjectMap<String, Texture> textures = new ObjectMap<String, Texture>(); Array<FileHandle> textureFiles = loadTilesets(root, tmxFile); textureFiles.addAll(loadImages(root, tmxFile)); for (FileHandle textureFile : textureFiles) { Texture texture = new Texture(textureFile, parameters.generateMipMaps); texture.setFilter(parameters.textureMinFilter, parameters.textureMagFilter); textures.put(textureFile.path(), texture); } DirectImageResolver imageResolver = new DirectImageResolver(textures); TiledMap map = loadTilemap(root, tmxFile, imageResolver); map.setOwnedResources(textures.values().toArray()); return map; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
From source file:com.blindtigergames.werescrewed.graphics.TextureAtlas.java
License:Apache License
private void load(TextureAtlasData data) { ObjectMap<TextureAtlasData.Page, Texture> pageToTexture = new ObjectMap<TextureAtlasData.Page, Texture>(); for (TextureAtlasData.Page page : data.pages) { this.collideOffsetX = page.collideOffsetX; this.collideOffsetY = page.collideOffsetY; Texture texture = null;// www . ja v a 2 s .c o m if (page.texture == null) { texture = new Texture(page.textureFile, page.format, page.useMipMaps); texture.setFilter(page.minFilter, page.magFilter); texture.setWrap(page.uWrap, page.vWrap); } else { texture = page.texture; texture.setFilter(page.minFilter, page.magFilter); texture.setWrap(page.uWrap, page.vWrap); } textures.add(texture); pageToTexture.put(page, texture); } for (TextureAtlasData.Region region : data.regions) { int width = region.width; int height = region.height; AtlasRegion atlasRegion = new AtlasRegion(pageToTexture.get(region.page), region.left, region.top, region.rotate ? height : width, region.rotate ? width : height); atlasRegion.index = region.index; atlasRegion.name = region.name; atlasRegion.offsetX = region.offsetX; atlasRegion.offsetY = region.offsetY; atlasRegion.originalHeight = region.originalHeight; atlasRegion.originalWidth = region.originalWidth; atlasRegion.rotate = region.rotate; atlasRegion.splits = region.splits; atlasRegion.pads = region.pads; if (region.flip) atlasRegion.flip(false, true); regions.add(atlasRegion); } }
From source file:com.dongbat.game.ability.types.SplitAndJoin.java
@Override public void cast(World world, Entity caster, Vector2 target) { AbilityComponent playerAbilityList = EntityUtil.getComponent(world, caster, AbilityComponent.class); AbilityInfo info = playerAbilityList.getAbility("SplitAndJoin"); if (info == null) { return;/*from www . j av a 2 s .co m*/ } Vector2 position = PhysicsUtil.getPosition(world, caster); UnitMovement ms = EntityUtil.getComponent(world, caster, UnitMovement.class); Vector2 direction = ms.getDirectionVelocity(); if (direction == null) { return; } float radius = PhysicsUtil.getRadius(world, caster); if (radius <= Constants.PHYSICS.MIN_RADIUS * 2) { return; } float newRadius = radius / 1.41f; // BuffUtil.addBuff(world, caster, caster, "Forced", 1500, 1, "forceStrength", 100, "direction", direction.cpy().scl(-1)); PhysicsUtil.setRadius(world, caster, newRadius); Entity bullet = UnitFactory.createProjectileUnit(world, caster, direction.cpy().nor().scl(radius + newRadius).add(position.cpy()), newRadius, true, true, true); ObjectMap<String, Object> args = new ObjectMap<String, Object>(); // Display display = EntityUtil.getComponent(world, caster, Display.class); // TextureAtlas split = AssetUtil.getUnitAtlas().get("split"); // Animation animation = new Animation(0.075f, split.getRegions()); // animation.setPlayMode(Animation.PlayMode.LOOP); // display.setGetOverridenStart(TimeUtil.getCurrentFrame(world)); // display.setOverridenDuration(1500); // display.setOverridenAnimation(new AnimatedSprite(animation)); // args.put("forceStrength", 100); // args.put("direction", direction.cpy().scl(1)); // BuffUtil.addBuff(world, caster, bullet, "DelayBuff", 0, 1, "buffName", "Forced", "duration", 3000, "args", args); BuffUtil.addBuff(world, caster, bullet, "Forced", 500, 1, "forceStrength", 20, "direction", direction.cpy().scl(1), "ignoreMass", true); args.put("feedPerSecond", 2f); BuffUtil.addBuff(world, caster, bullet, "DelayBuff", 1000, 1, "buffName", "Feed", "duration", -1, "args", args); BuffUtil.addBuff(world, bullet, bullet, "AttractFood", -1, 1); // BuffUtil.addBuff(world, bullet, bullet, "Feed", -1, 1, "feedPerSecond", 0.55f); }
From source file:com.dongbat.game.registry.AbilityRegistry.java
/** * Parse ability info from String that was loaded from load() function * * @param abilityString ability String need to parse *//* ww w . j a v a 2 s.c om*/ private static void parseAbility(String abilityString) { String[] frags = abilityString.split("\\r?\\n"); ObjectMap<String, String> common = new ObjectMap<String, String>(); ObjectMap<Integer, ObjectMap<String, String>> levelMaps = new ObjectMap<Integer, ObjectMap<String, String>>(); ObjectMap<String, String> abilityData; for (String frag : frags) { String[] split = frag.split(":"); common.put(split[0].trim(), split[1].trim()); } String name = common.remove("name"); String clazz = common.remove("class"); for (ObjectMap.Entry<String, String> entry : common.entries()) { String[] phongs = entry.value.split("\\|"); abilityData = new ObjectMap<String, String>(); for (String phong : phongs) { String[] minh = phong.split("="); abilityData.put(minh[0].trim(), minh[1].trim()); } levelMaps.put(Integer.parseInt(entry.key.trim()), abilityData); } registry.put(name, new Entry(clazz, levelMaps)); }
From source file:com.dongbat.game.registry.BuffRegistry.java
/** * Parse buff info from String that was loaded from load() function * * @param buffString buff String need to parse *//*ww w. j ava 2 s.c o m*/ public static void parseBuffs(String buffString) { String[] lines = buffString.split("\\r?\\n"); ObjectMap<String, String> common = new ObjectMap<String, String>(); ObjectMap<Integer, ObjectMap<String, String>> levelMaps = new ObjectMap<Integer, ObjectMap<String, String>>(); ObjectMap<String, String> buffData; for (String line : lines) { String[] split = line.split(":"); common.put(split[0], split[1]); } String name = common.remove("name"); String clazz = common.remove("class"); for (ObjectMap.Entry<String, String> entry : common.entries()) { String[] phongs = entry.value.split("\\|"); buffData = new ObjectMap<String, String>(); for (String phong : phongs) { String[] minh = phong.split("="); buffData.put(minh[0].trim(), minh[1].trim()); } levelMaps.put(Integer.parseInt(entry.key.trim()), buffData); } registry.put(name, new Entry(clazz, levelMaps)); }