DEADSOFTWARE

22903876fd393dd01469d1cad38355927e8c66a2
[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 }
36 }
38 @Override
39 public void draw(SpriteBatch spriteBatch, float x, float y, float delta) {
40 updateAnimation(delta);
42 final Sprite frontLeg = pigSprite[0][1];
43 final Sprite backLeg = pigSprite[1][1];
44 final Sprite body = pigSprite[dirMultiplier()][0];
46 SpriteUtilsKt.draw(spriteBatch, backLeg, x + (9 - dirMultiplier() * 9), y + 12, -mAnim);
47 SpriteUtilsKt.draw(spriteBatch, backLeg, x + 21 - (9 * dirMultiplier()), y + 12, -mAnim);
48 SpriteUtilsKt.draw(spriteBatch, body, x, y);
49 SpriteUtilsKt.draw(spriteBatch, frontLeg, x + (9 - dirMultiplier() * 9), y + 12, mAnim);
50 SpriteUtilsKt.draw(spriteBatch, frontLeg, x + 21 - (9 * dirMultiplier()), y + 12, mAnim);
51 }
52 }