DEADSOFTWARE

Minor enhancements
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / game / mobs / Human.java
index 318ea153be76b578418df085492bab1039a99659..245d34960407d99c2aaf9231fd198d5e3766a282 100644 (file)
@@ -1,14 +1,18 @@
 package ru.deadsoftware.cavecraft.game.mobs;
 
+import com.badlogic.gdx.graphics.g2d.Sprite;
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.RandomXS128;
 import com.badlogic.gdx.math.Rectangle;
 import com.badlogic.gdx.math.Vector2;
+import ru.deadsoftware.cavecraft.Assets;
 import ru.deadsoftware.cavecraft.game.GameProc;
 
 public class Human extends Mob{
 
     private RandomXS128 rand = new RandomXS128();
     private GameProc gameProc;
+    private Sprite[][] tex;
 
     public Human(int x, int y, GameProc gameProc) {
         this.gameProc = gameProc;
@@ -17,8 +21,11 @@ public class Human extends Mob{
         moveY = new Vector2(0, 0);
         width = 8;
         height = 30;
-        dir = 1;
+        dir = 0;
         canJump = false;
+        tex = Assets.playerSkin.clone();
+        animation = 0;
+        anim_d = 1;
     }
 
     @Override
@@ -32,6 +39,31 @@ public class Human extends Mob{
         moveX.add(-2+4*dir, 0);
     }
 
+    @Override
+    public void draw(SpriteBatch spriteBatch, float x, float y) {
+        if (moveX.x!=0) {
+            animation+=Mob.ANIM_SPEED*anim_d;
+            if (animation<=-60 || animation>=60) anim_d=-anim_d;
+        }
+        tex[0][2].setRotation(animation);
+        tex[1][2].setRotation(-animation);
+        tex[0][3].setRotation(-animation);
+        tex[1][3].setRotation(animation);
+        spriteBatch.draw(tex[dir][0], x-2, y-2);
+        if (tex[0][2].getRotation()>=60 || tex[0][2].getRotation()<=-60)
+            Mob.ANIM_SPEED = -Mob.ANIM_SPEED;
+        tex[1][2].setPosition(x-6,y);
+        tex[1][2].draw(spriteBatch);
+        tex[1][3].setPosition(x-6, y+10);
+        tex[1][3].draw(spriteBatch);
+        tex[0][3].setPosition(x-6, y+10);
+        tex[0][3].draw(spriteBatch);
+        spriteBatch.draw(tex[dir][1], x-2, y + 8);
+
+        tex[0][2].setPosition(x-6, y);
+        tex[0][2].draw(spriteBatch);
+    }
+
     public Rectangle getRect() {
         return new Rectangle(position.x, position.y, width, height);
     }