From f7e571c2aa2dc9c04f8526a09d97ad75ba2403e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Latner?= <matyas.latner@nic.cz> Date: Thu, 22 Jan 2015 15:01:22 +0100 Subject: [PATCH] #5 Scaling creatures by screen resolution --- .../nic/tablexia/creature/CreatureRoot.java | 17 ++---- .../cz/nic/tablexia/screen/GameScreen.java | 53 ++++++++++--------- 2 files changed, 31 insertions(+), 39 deletions(-) diff --git a/core/src/cz/nic/tablexia/creature/CreatureRoot.java b/core/src/cz/nic/tablexia/creature/CreatureRoot.java index cf3b8fb45..cc8d7a23d 100644 --- a/core/src/cz/nic/tablexia/creature/CreatureRoot.java +++ b/core/src/cz/nic/tablexia/creature/CreatureRoot.java @@ -140,10 +140,9 @@ public class CreatureRoot extends Actor { public CreatureRoot(AttributeGender attributeGender, float x, float y) { this.attributeGender = attributeGender; - setPosition(x, y); attributes = new ArrayList<Attribute>(); Texture backgroundTexture = BankRoberryAssetManager.getInstance().get(BankRoberryAssetManager.CREATURE_BACKGROUND_TEXTURE, Texture.class); - setSize(backgroundTexture.getWidth(), backgroundTexture.getHeight()); + setBounds(x, y, backgroundTexture.getWidth(), backgroundTexture.getHeight()); } /** @@ -165,16 +164,6 @@ public class CreatureRoot extends Actor { return this; } - - @Override - public float getWidth() { - return super.getWidth() * getScaleX(); - } - - @Override - public float getHeight() { - return super.getHeight() * getScaleY(); - } /** * Returns <code>true</code> if creature is thief. @@ -435,7 +424,7 @@ public class CreatureRoot extends Actor { if (highliteColor != null) { batch.setColor(highliteColor.r, highliteColor.g, highliteColor.b, parentAlpha); Texture texture = BankRoberryAssetManager.getInstance().get(BankRoberryAssetManager.CREATURE_BACKGROUND_TEXTURE, Texture.class); - batch.draw(texture, getX(), getY(), getOriginX(), getOriginY(), texture.getWidth(), texture.getHeight(), getScaleX(), getScaleY(), getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); + batch.draw(texture, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); batch.setColor(Color.WHITE); } for (Attribute attribute : attributes) { @@ -444,7 +433,7 @@ public class CreatureRoot extends Actor { texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); } batch.setColor(getColor()); - batch.draw(texture, getX(), getY(), getOriginX(), getOriginY(), texture.getWidth(), texture.getHeight(), getScaleX(), getScaleY(), getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); + batch.draw(texture, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); batch.setColor(Color.WHITE); } } diff --git a/core/src/cz/nic/tablexia/screen/GameScreen.java b/core/src/cz/nic/tablexia/screen/GameScreen.java index 5d0a7be53..d4235c93d 100644 --- a/core/src/cz/nic/tablexia/screen/GameScreen.java +++ b/core/src/cz/nic/tablexia/screen/GameScreen.java @@ -52,7 +52,31 @@ public class GameScreen extends ScreenAdapter { } - private Stage stage; + private static final float CREATURE_STRAT_MOVE_DURATION = 1.5f; + private static final float CREATURE_MOVE_DURATION_STEP = 0.013f; + private static final float CREATURE_FROM_SCALE = 0.1f; + private static final float CREATURE_TO_SCALE = 1.05f; + private static final float CREATURE_FINAL_SCALE = 0.9f; + + private final static float CREATURE_MIDDLE_DELAY_MODIFIER = 0.5f; + private final static float CREATURE_FINISH_DELAY_MODIFIER = 0.25f; + + private final static Interpolation CREATURE_START_INTERPOLATION = Interpolation.pow4Out; + private final static Interpolation CREATURE_MIDDLE_INTERPOLATION = Interpolation.pow4In; + private final static Interpolation CREATURE_FINISH_INTERPOLATION = Interpolation.linear; + + private float creatureStartPositionX; + private float creatureStartPositionY; + private float creatureMiddle1PositionX; + private float creatureMiddle1PositionY; + private float creatureMiddle2PositionX; + private float creatureMiddle2PositionY; + private float creatureFinishPositionX; + private float creatureFinishPositionY; + + private Stage stage; + + private int creatureNumber = 0; @Override public void show() { @@ -81,29 +105,6 @@ public class GameScreen extends ScreenAdapter { stage = null; } - int creatureNumber = 0; - private static final float CREATURE_STRAT_MOVE_DURATION = 1.5f; - private static final float CREATURE_MOVE_DURATION_STEP = 0.013f; - private static final float CREATURE_FROM_SCALE = 0.1f; - private static final float CREATURE_TO_SCALE = 1.05f; - private static final float CREATURE_FINAL_SCALE = 0.9f; - - private float creatureStartPositionX; - private float creatureStartPositionY; - private float creatureMiddle1PositionX; - private float creatureMiddle1PositionY; - private float creatureMiddle2PositionX; - private float creatureMiddle2PositionY; - private float creatureFinishPositionX; - private float creatureFinishPositionY; - - private final static Interpolation CREATURE_START_INTERPOLATION = Interpolation.pow4Out; - private final static Interpolation CREATURE_MIDDLE_INTERPOLATION = Interpolation.pow4In; - private final static Interpolation CREATURE_FINISH_INTERPOLATION = Interpolation.linear; - - private final static float CREATURE_MIDDLE_DELAY_MODIFIER = 0.5f; - private final static float CREATURE_FINISH_DELAY_MODIFIER = 0.25f; - private int getNumberOfMistakesInGame() { return 0; } @@ -128,10 +129,11 @@ public class GameScreen extends ScreenAdapter { final float duration = getCreatureMoveDurationForCreatureNumber(creatureNumber); final CreatureRoot creature = creatures.get(creatureNumber); // creature.setClickable(scene, this, getVertexBufferObjectManager()); + float creatureRatio = (stage.getHeight() * (3f/5)) / creature.getHeight(); + creature.setSize(creature.getWidth() * creatureRatio, creature.getHeight() * creatureRatio); creature.setOrigin(Align.center); creature.setPosition(creatureStartPositionX, creatureStartPositionY); creature.setScale(CREATURE_FROM_SCALE); - stage.addActor(creature); creature.addAction(sequence(parallel(moveTo(creatureMiddle1PositionX, creatureMiddle1PositionY, duration, CREATURE_START_INTERPOLATION), scaleTo(CREATURE_TO_SCALE, CREATURE_TO_SCALE, duration, CREATURE_START_INTERPOLATION)), parallel(moveTo(creatureMiddle2PositionX, creatureMiddle2PositionY, duration * CREATURE_MIDDLE_DELAY_MODIFIER, CREATURE_MIDDLE_INTERPOLATION), @@ -146,6 +148,7 @@ public class GameScreen extends ScreenAdapter { showNextCreature(creatures); } }))); + stage.addActor(creature); // IModifierListener<IEntity> firstAnimListener = new EntityModifierListenerAdapter() { -- GitLab