Got rid of a large amount of static variables

This commit is contained in:
2020-06-30 13:59:50 -06:00
parent a98b44b7bd
commit f31e1c3da3
8 changed files with 131 additions and 133 deletions

View File

@@ -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)

View File

@@ -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));
}
}