1 package ru
.deadsoftware
.cavedroid
.game
.mobs
;
3 import com
.badlogic
.gdx
.graphics
.g2d
.SpriteBatch
;
4 import com
.badlogic
.gdx
.math
.Vector2
;
5 import ru
.deadsoftware
.cavedroid
.game
.GameWorld
;
6 import ru
.deadsoftware
.cavedroid
.misc
.Assets
;
8 public class Player
extends Mob
{
10 public final int[] inventory
;
12 public final int gameMode
;
16 super(0, 0, 4, 30, randomDir(), Type
.MOB
);
18 inventory
= new int[9];
22 public void respawn(GameWorld gameWorld
) {
23 Vector2 pos
= getSpawnPoint(gameWorld
);
29 private Vector2
getSpawnPoint(GameWorld gameWorld
) {
31 for (y
= 0; y
< gameWorld
.getHeight(); y
++) {
32 if (y
== gameWorld
.getHeight() - 1) {
34 gameWorld
.setForeMap(0, y
, 1);
37 if (gameWorld
.hasForeAt(0, y
) && gameWorld
.getForeMapBlock(0, y
).hasCollision()) {
41 return new Vector2(8 - getWidth() / 2, (float) y
* 16 - getHeight());
44 public void setDir(Direction dir
) {
45 if (dir
!= getDirection()) {
51 public void ai(GameWorld gameWorld
) {
55 public void changeDir() {
59 public void draw(SpriteBatch spriteBatch
, float x
, float y
) {
60 if (mMove
.x
!= 0 || Assets
.playerSprite
[0][2].getRotation() != 0) {
61 Assets
.playerSprite
[0][2].rotate(mAnimDelta
);
62 Assets
.playerSprite
[1][2].rotate(-mAnimDelta
);
63 Assets
.playerSprite
[0][3].rotate(-mAnimDelta
);
64 Assets
.playerSprite
[1][3].rotate(mAnimDelta
);
66 Assets
.playerSprite
[0][2].setRotation(0);
67 Assets
.playerSprite
[1][2].setRotation(0);
68 Assets
.playerSprite
[0][3].setRotation(0);
69 Assets
.playerSprite
[1][3].setRotation(0);
71 if (Assets
.playerSprite
[0][2].getRotation() >= 60 || Assets
.playerSprite
[0][2].getRotation() <= -60) {
72 mAnimDelta
= -mAnimDelta
;
76 Assets
.playerSprite
[1][2].setPosition(x
+ 2, y
+ 8);
77 Assets
.playerSprite
[1][2].draw(spriteBatch
);
79 Assets
.playerSprite
[1][3].setPosition(x
+ 2, y
+ 20);
80 Assets
.playerSprite
[1][3].draw(spriteBatch
);
82 Assets
.playerSprite
[0][3].setPosition(x
+ 2, y
+ 20);
83 Assets
.playerSprite
[0][3].draw(spriteBatch
);
85 spriteBatch
.draw(Assets
.playerSprite
[dirMultiplier()][0], x
, y
);
87 spriteBatch
.draw(Assets
.playerSprite
[dirMultiplier()][1], x
+ 2, y
+ 8);
89 Assets
.playerSprite
[0][2].setPosition(x
+ 2, y
+ 8);
90 Assets
.playerSprite
[0][2].draw(spriteBatch
);