X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FMob.java;h=2b58f7c626817f0fd9789f453b751d7463aa8b59;hb=3fdc2291218f6d3903ce923563d1e12051690c37;hp=4ad04e8538affb3b49e3bbf2eb0f80a796ce4510;hpb=2aa65a4cdb47df8014f28342d460fc6639bed885;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 4ad04e8..2b58f7c 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java @@ -56,6 +56,30 @@ public abstract class Mob extends Rectangle implements Serializable { return MathUtils.randomBoolean(.5f) ? Direction.LEFT : Direction.RIGHT; } + private boolean isAnimationIncreasing() { + return mAnim > 0 && mAnimDelta > 0 || mAnim < 0 && mAnimDelta < 0; + } + + protected final void updateAnimation(float delta) { + if (mVelocity.x != 0f || Math.abs(mAnim) > mAnimDelta * delta) { + mAnim += mAnimDelta * delta; + } else { + mAnim = 0; + } + + if (mAnim > 60f) { + mAnim = 60f; + mAnimDelta = -ANIMATION_SPEED; + } else if (mAnim < -60f) { + mAnim = -60f; + mAnimDelta = ANIMATION_SPEED; + } + + if (mVelocity.x == 0f && isAnimationIncreasing()) { + mAnimDelta = -mAnimDelta; + } + } + /** * @return The X coordinate of a mob in blocks */