DEADSOFTWARE

376c68bf641bb0581d280802995ff49f9f52a0e8
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / Pig.java
1 package ru.deadsoftware.cavedroid.game.mobs;
3 import com.badlogic.gdx.graphics.g2d.Sprite;
4 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
5 import com.badlogic.gdx.math.MathUtils;
6 import com.badlogic.gdx.math.Vector2;
7 import ru.deadsoftware.cavedroid.game.GamePhysics;
8 import ru.deadsoftware.cavedroid.game.world.GameWorld;
9 import ru.deadsoftware.cavedroid.misc.Assets;
10 import ru.deadsoftware.cavedroid.misc.utils.SpriteUtilsKt;
12 import static ru.deadsoftware.cavedroid.misc.Assets.pigSprite;
14 public class Pig extends Mob {
16 public Pig(float x, float y) {
17 super(x, y, 25, 18, randomDir(), Type.MOB);
18 mVelocity = new Vector2((looksLeft() ? -1 : 1) * GamePhysics.PL_SPEED, 0);
19 }
21 @Override
22 public void changeDir() {
23 switchDir();
24 mVelocity.x = (-1 + 2 * dirMultiplier()) * GamePhysics.PL_SPEED;
25 }
27 @Override
28 public void ai(GameWorld gameWorld, float delta) {
29 if (MathUtils.randomBoolean(delta)) {
30 if (mVelocity.x != 0f) {
31 mVelocity.x = 0;
32 } else {
33 changeDir();
34 }
35 }
37 if (mVelocity.x != 0f) {
38 mAnim += mAnimDelta * delta;
39 } else {
40 mAnim = 0;
41 }
43 if (mAnim >= 60 || mAnim <= -60) {
44 mAnimDelta = -mAnimDelta;
45 }
46 }
48 @Override
49 public void draw(SpriteBatch spriteBatch, float x, float y, float delta) {
50 updateAnimation(delta);
52 final Sprite frontLeg = pigSprite[0][1];
53 final Sprite backLeg = pigSprite[1][1];
54 final Sprite body = pigSprite[dirMultiplier()][0];
56 SpriteUtilsKt.draw(spriteBatch, backLeg, x + (9 - dirMultiplier() * 9), y + 12, -mAnim);
57 SpriteUtilsKt.draw(spriteBatch, backLeg, x + 21 - (9 * dirMultiplier()), y + 12, -mAnim);
58 SpriteUtilsKt.draw(spriteBatch, body, x, y);
59 SpriteUtilsKt.draw(spriteBatch, frontLeg, x + (9 - dirMultiplier() * 9), y + 12, mAnim);
60 SpriteUtilsKt.draw(spriteBatch, frontLeg, x + 21 - (9 * dirMultiplier()), y + 12, mAnim);
61 }
62 }