Got rid of a large amount of static variables
This commit is contained in:
@@ -17,15 +17,20 @@ namespace Collector.Character
|
||||
private string Input { get; set; }
|
||||
private int _frameNumber;
|
||||
private float _timeSinceLastFrame;
|
||||
private Main _main;
|
||||
private readonly Main _main;
|
||||
private readonly Chunks _chunks;
|
||||
private readonly Player _player;
|
||||
|
||||
|
||||
public InputController(OrthographicCamera cam, SpriteBatch spriteBatch, ContentManager contentManager, Main main)
|
||||
|
||||
public InputController(OrthographicCamera cam, SpriteBatch spriteBatch, ContentManager contentManager, Main main, Chunks chunks, Player player)
|
||||
{
|
||||
Input = "Down";
|
||||
_cam = cam;
|
||||
_spriteBatch = spriteBatch;
|
||||
_main = main;
|
||||
_chunks = chunks;
|
||||
_player = player;
|
||||
_frameNumber = 0;
|
||||
_texture = contentManager.Load<Texture2D>("man");
|
||||
const int tileSize = 32;
|
||||
@@ -97,7 +102,7 @@ namespace Collector.Character
|
||||
};
|
||||
}
|
||||
|
||||
public void PlayerInput(Main main, GameTime gameTime)
|
||||
public void PlayerInput(GameTime gameTime)
|
||||
{
|
||||
const float movementSpeed = IRestrictions.MovementSpeed;
|
||||
var keyboardState = Keyboard.GetState();
|
||||
@@ -117,42 +122,42 @@ namespace Collector.Character
|
||||
if (keyboardState.IsKeyDown(Keys.W) && keyboardState.IsKeyDown(Keys.D))
|
||||
{
|
||||
Input = "UpRight";
|
||||
Player.Move(_cam,movementSpeed*diagonalMovement,-movementSpeed*diagonalMovement);
|
||||
_player.Move(_cam,movementSpeed*diagonalMovement,-movementSpeed*diagonalMovement);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.W) && keyboardState.IsKeyDown(Keys.A))
|
||||
{
|
||||
Player.Move(_cam,-movementSpeed*diagonalMovement,-movementSpeed*diagonalMovement);
|
||||
_player.Move(_cam,-movementSpeed*diagonalMovement,-movementSpeed*diagonalMovement);
|
||||
Input = "UpLeft";
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.S) && keyboardState.IsKeyDown(Keys.D))
|
||||
{
|
||||
Input = "DownRight";
|
||||
Player.Move(_cam,movementSpeed*diagonalMovement,movementSpeed*diagonalMovement);
|
||||
_player.Move(_cam,movementSpeed*diagonalMovement,movementSpeed*diagonalMovement);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.S) && keyboardState.IsKeyDown(Keys.A))
|
||||
{
|
||||
Input = "DownLeft";
|
||||
Player.Move(_cam,-movementSpeed*diagonalMovement,movementSpeed*diagonalMovement);
|
||||
_player.Move(_cam,-movementSpeed*diagonalMovement,movementSpeed*diagonalMovement);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.W))
|
||||
{
|
||||
Input = "Up";
|
||||
Player.Move(_cam,0,-movementSpeed);
|
||||
_player.Move(_cam,0,-movementSpeed);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.A))
|
||||
{
|
||||
Input = "Left";
|
||||
Player.Move(_cam,-movementSpeed,0);
|
||||
_player.Move(_cam,-movementSpeed,0);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.S))
|
||||
{
|
||||
Input = "Down";
|
||||
Player.Move(_cam,0,movementSpeed);
|
||||
_player.Move(_cam,0,movementSpeed);
|
||||
}
|
||||
else if (keyboardState.IsKeyDown(Keys.D))
|
||||
{
|
||||
Input = "Right";
|
||||
Player.Move(_cam,movementSpeed,0);
|
||||
_player.Move(_cam,movementSpeed,0);
|
||||
}
|
||||
if (keyboardState.IsKeyDown(Keys.Q))
|
||||
{
|
||||
@@ -164,7 +169,7 @@ namespace Collector.Character
|
||||
}
|
||||
if (mouseState.LeftButton == ButtonState.Pressed)
|
||||
{
|
||||
Chunks.RemoveBlock(PlayerMouse.GetSelectedX(),PlayerMouse.GetSelectedY());
|
||||
_chunks.RemoveBlock(PlayerMouse.GetSelectedX(),PlayerMouse.GetSelectedY());
|
||||
}
|
||||
if (mouseState.RightButton == ButtonState.Pressed)
|
||||
{
|
||||
@@ -174,7 +179,7 @@ namespace Collector.Character
|
||||
|
||||
private void PlaceSelectedBlock(Blocks selectedItem)
|
||||
{
|
||||
Chunks.PlaceBlock(PlayerMouse.GetSelectedX(), PlayerMouse.GetSelectedY(), selectedItem);
|
||||
_chunks.PlaceBlock(PlayerMouse.GetSelectedX(), PlayerMouse.GetSelectedY(), selectedItem);
|
||||
}
|
||||
|
||||
private void UpdateAnimationFrame(GameTime gameTime)
|
||||
|
||||
@@ -10,37 +10,38 @@ namespace Collector.Character
|
||||
{
|
||||
public static float X { get; private set; }
|
||||
public static float Y { get; private set; }
|
||||
private RectangleF _playerBounds;
|
||||
private Chunks _chunks { get; }
|
||||
|
||||
public static RectangleF PlayerBounds;
|
||||
|
||||
public Player(int x, int y)
|
||||
public Player(int x, int y, Chunks chunks)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
PlayerBounds = new RectangleF(x, y, IRestrictions.TileSize * 0.5f, IRestrictions.TileSize * 0.35f);
|
||||
_chunks = chunks;
|
||||
_playerBounds = new RectangleF(x, y, IRestrictions.TileSize * 0.5f, IRestrictions.TileSize * 0.35f);
|
||||
}
|
||||
|
||||
public static void Move(OrthographicCamera cam, float x, float y)
|
||||
public void Move(OrthographicCamera cam, float x, float y)
|
||||
{
|
||||
Teleport(cam, x, 0);
|
||||
if (Chunks.LoadedCollisions.Values.Any(collisionsValue => collisionsValue.Rectangle.Intersects(PlayerBounds)))
|
||||
if (_chunks.LoadedCollisions.Values.Any(collisionsValue => collisionsValue.Rectangle.Intersects(_playerBounds)))
|
||||
{
|
||||
Teleport(cam, -x, 0);
|
||||
}
|
||||
|
||||
Teleport(cam, 0, y);
|
||||
if (Chunks.LoadedCollisions.Values.Any(collisionsValue => collisionsValue.Rectangle.Intersects(PlayerBounds)))
|
||||
if (_chunks.LoadedCollisions.Values.Any(collisionsValue => collisionsValue.Rectangle.Intersects(_playerBounds)))
|
||||
{
|
||||
Teleport(cam, 0, -y);
|
||||
}
|
||||
}
|
||||
|
||||
private static void Teleport(OrthographicCamera cam, float x, float y)
|
||||
private void Teleport(OrthographicCamera cam, float x, float y)
|
||||
{
|
||||
X += x;
|
||||
Y += y;
|
||||
PlayerBounds.X = X + 0.2f;
|
||||
PlayerBounds.Y = Y + 1.5f;
|
||||
_playerBounds.X = X + 0.2f;
|
||||
_playerBounds.Y = Y + 1.5f;
|
||||
cam.Move(new Vector2(x, y));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user