X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FMob.java;h=fc9d61bbe778e37f1c1186fa1387f0be207fb8d6;hb=ca4dfc9c8252d4222f778db27e7505909420da39;hp=394346f2b9252f31d4982d7b2c4771d9d42bcf1c;hpb=1c004c0ce7e183e773b5b486295c25e39732e899;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java index 394346f..fc9d61b 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java @@ -99,17 +99,21 @@ public abstract class Mob extends Rectangle implements Serializable { } protected final void updateAnimation(float delta) { - if (mVelocity.x != 0f || Math.abs(mAnim) > mAnimDelta * delta) { - mAnim += mAnimDelta * delta; + final float velocityMultiplier = (Math.abs(getVelocity().x) / getSpeed()); + final float animMultiplier = (velocityMultiplier == 0f ? 1f : velocityMultiplier) * delta; + final float maxAnim = 60f * (velocityMultiplier == 0f ? 1f : velocityMultiplier); + + if (mVelocity.x != 0f || Math.abs(mAnim) > mAnimDelta * animMultiplier) { + mAnim += mAnimDelta * animMultiplier; } else { mAnim = 0; } - if (mAnim > 60f) { - mAnim = 60f; + if (mAnim > maxAnim) { + mAnim = maxAnim; mAnimDelta = -ANIMATION_SPEED; - } else if (mAnim < -60f) { - mAnim = -60f; + } else if (mAnim < -maxAnim) { + mAnim = -maxAnim; mAnimDelta = ANIMATION_SPEED; } @@ -242,6 +246,10 @@ public abstract class Mob extends Rectangle implements Serializable { } public void damage(int damage) { + if (damage == 0) { + return; + } + if (damage < 0) { Gdx.app.error(this.getClass().getSimpleName(), "Damage cant be negative!"); return;