using System; using System.Collections.Generic; using System.Linq; using System.Text; using VBXSE; //oooooooooooooooooooooooooooooooooooooooooooo //ooooooooooooo CLIENT ooooooooooooooooooooooo //oooooooooooooooooooooooooooooooooooooooooooo namespace WorldOfMinimalism { public class Player { public Sprite sprite; public int cellX = 1; public int cellY = 1; public int x = 0; //NOTE: In pixels, not tiles public int y = 0; //NOTE: In pixels, not tiles public Main main = null; public Player(Main main) { this.main = main; this.sprite = SpriteEngine.CreateSprite("player"); this.sprite.depth = -5; this.sprite.enabled = false; } public void Move(int amountX, int amountY) { if (!main.CheckForCollision(x + amountX, y + amountY)) { this.x += amountX; this.y += amountY; this.sprite.position.X += amountX; this.sprite.position.Y += amountY; main.UpdatePlayerLocation(); CenterCamera(); } } public void CenterCamera() { SpriteEngine.cameraOffsetX = sprite.position.X - SpriteEngine.DEFAULT_WIDTH / 2; SpriteEngine.cameraOffsetY = sprite.position.Y - SpriteEngine.DEFAULT_HEIGHT / 2; } public void UpdateSpritePosition() { if (sprite != null) { int mainCellX = main.player.cellX; int mainCellY = main.player.cellY; if ((Math.Abs(cellX - mainCellX) > 4) || (Math.Abs(cellY - mainCellY) > 4)) { this.sprite.enabled = false; } else { int diffX = cellX - mainCellX; int diffY = cellY - mainCellY; this.sprite.SetPosition(diffX * Cell.CELL_PIXELWIDTH + x, diffY * Cell.CELL_PIXELHEIGHT + y); this.sprite.enabled = true; } } } public void EraseSprite() { SpriteEngine.EraseGObject(sprite); this.sprite = null; } } }