diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Player.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Player.java
index 0b7ab8bc8148c48a24b02a3d7d266ec43e7cd3de..5cdb5d85bb5baa6a28e01e14327675f2e1d59deb 100644 (file)
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
+import ru.deadsoftware.cavedroid.game.GamePhysics;
import ru.deadsoftware.cavedroid.game.GameWorld;
import ru.deadsoftware.cavedroid.misc.Assets;
Vector2 pos = getSpawnPoint(gameWorld);
this.x = pos.x;
this.y = pos.y;
- mMove.setZero();
+ mVelocity.setZero();
}
private Vector2 getSpawnPoint(GameWorld gameWorld) {
}
@Override
- public void ai(GameWorld gameWorld) {
+ public void ai(GameWorld gameWorld, float delta) {
}
@Override
}
@Override
- public void draw(SpriteBatch spriteBatch, float x, float y) {
- if (mMove.x != 0 || Assets.playerSprite[0][2].getRotation() != 0) {
- Assets.playerSprite[0][2].rotate(mAnimDelta);
- Assets.playerSprite[1][2].rotate(-mAnimDelta);
- Assets.playerSprite[0][3].rotate(-mAnimDelta);
- Assets.playerSprite[1][3].rotate(mAnimDelta);
+ public void draw(SpriteBatch spriteBatch, float x, float y, float delta) {
+ final float correctedAnimationDelta = mAnimDelta * delta;
+
+ if (mVelocity.x != 0 || Math.abs(Assets.playerSprite[0][2].getRotation()) > Math.abs(correctedAnimationDelta)) {
+ Assets.playerSprite[0][2].rotate(correctedAnimationDelta);
+ Assets.playerSprite[1][2].rotate(-correctedAnimationDelta);
+ Assets.playerSprite[0][3].rotate(-correctedAnimationDelta);
+ Assets.playerSprite[1][3].rotate(correctedAnimationDelta);
} else {
Assets.playerSprite[0][2].setRotation(0);
Assets.playerSprite[1][2].setRotation(0);