DEADSOFTWARE

Make separate textures for mob limbs #8
[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.SpriteBatch;
4 import com.badlogic.gdx.math.MathUtils;
5 import com.badlogic.gdx.math.Vector2;
6 import ru.deadsoftware.cavedroid.misc.Assets;
8 import static ru.deadsoftware.cavedroid.misc.Assets.pigSprite;
10 public class Pig extends Mob {
12 public Pig(float x, float y) {
13 super(x, y, 25, 18, randomDir(), Type.MOB);
14 move = new Vector2(looksLeft() ? -1 : 1, 0);
15 }
17 @Override
18 public void changeDir() {
19 switchDir();
20 move.x = -1 + 2 * dirMultiplier();
21 }
23 @Override
24 public void ai() {
25 if (MathUtils.randomBoolean(.0025f)) {
26 if (move.x != 0f) {
27 move.x = 0;
28 } else {
29 changeDir();
30 }
31 }
33 if (move.x != 0f) {
34 anim += animDelta;
35 } else {
36 anim = 0;
37 }
39 if (anim >= 60 || anim <= -60) {
40 animDelta = -animDelta;
41 }
42 }
44 @Override
45 public void draw(SpriteBatch spriteBatch, float x, float y) {
46 pigSprite[0][1].setRotation(getAnim());
47 pigSprite[1][1].setRotation(-getAnim());
48 //back legs
49 pigSprite[1][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
50 pigSprite[1][1].draw(spriteBatch);
51 pigSprite[1][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
52 pigSprite[1][1].draw(spriteBatch);
53 //head & body
54 spriteBatch.draw(Assets.pigSprite[dirMultiplier()][0], x, y);
55 //front legs
56 pigSprite[0][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
57 pigSprite[0][1].draw(spriteBatch);
58 pigSprite[0][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
59 pigSprite[0][1].draw(spriteBatch);
60 }
61 }