X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2Fobjects%2FPlayer.java;h=11838d16195e8a3bf5e4c7faad17126704afc85a;hb=d7f5950fc751cec8fa64005dd1886cac4081ee99;hp=415ed3d5d46cbef214ac6a847583b71fc15a33e6;hpb=385255cc7b49fbfd3290497367cbc69919b24d4f;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/objects/Player.java b/core/src/ru/deadsoftware/cavecraft/game/objects/Player.java index 415ed3d..11838d1 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/objects/Player.java +++ b/core/src/ru/deadsoftware/cavecraft/game/objects/Player.java @@ -1,43 +1,58 @@ package ru.deadsoftware.cavecraft.game.objects; -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.WorldGen; +import ru.deadsoftware.cavecraft.game.GameItems; +import ru.deadsoftware.cavecraft.game.GameWorld; -public class Player { +import java.io.Serializable; + +public class Player implements Serializable { public static int ANIM_SPEED = 6; - public Vector2 position; - public Vector2 moveX, moveY; - public int width, height, dir, texWidth; + public Vector2 pos; + public Vector2 move; + public int width, height, dir, texWidth, hp; public boolean canJump; - public int[] inventory; + public int[] inv; public boolean flyMode = false; + public int gameMode; - public Player(Vector2 spawnPoint) { - position = spawnPoint.cpy(); - moveX = new Vector2(0, 0); - moveY = new Vector2(0, 0); + public Player(GameWorld world, int gameMode) { + this.gameMode = gameMode; + pos = getSpawnPoint(world).cpy(); + move = new Vector2(0, 0); width = 4; height = 30; texWidth = 8; - inventory = new int[9]; - inventory[0] = 1; - inventory[1] = 2; - inventory[2] = 3; - inventory[3] = 4; - inventory[4] = 5; - inventory[5] = 6; - inventory[6] = 7; - inventory[7] = 8; - inventory[8] = 9; + inv = new int[9]; + hp = 20; + } + + public void respawn(GameWorld world) { + pos.set(getSpawnPoint(world)); + move.setZero(); + hp = 20; + } + + private Vector2 getSpawnPoint(GameWorld world) { + int x = 0, y; + for (y = 0; y < world.getHeight(); y++) { + if (y == world.getHeight() - 1) { + y = 60; + world.setForeMap(x, y, 1); + break; + } + if (world.getForeMap(x, y) > 0 && GameItems.getBlock(world.getForeMap(x, y)).coll) break; + } + x = x * 16 + texWidth / 2; + y = y * 16 - height; + return new Vector2(x, y); } public Rectangle getRect() { - return new Rectangle(position.x+2, position.y, width, height); + return new Rectangle(pos.x + 2, pos.y, width, height); } }