diff --git a/DangerousD/GameCore/GameObjects/MapObject.cs b/DangerousD/GameCore/GameObjects/MapObject.cs index e2a94a3..24add79 100644 --- a/DangerousD/GameCore/GameObjects/MapObject.cs +++ b/DangerousD/GameCore/GameObjects/MapObject.cs @@ -10,9 +10,11 @@ public abstract class MapObject : GameObject public bool IsColliderOn; private Rectangle _sourceRectangle; protected override GraphicsComponent GraphicsComponent { get; } = new("tiles"); - public MapObject(Vector2 position, Rectangle sourceRectangle) : base(position) + public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle) : base(position) { _sourceRectangle = sourceRectangle; + Width = (int)size.X; + Height = (int)size.Y; } public override void Initialize() diff --git a/DangerousD/GameCore/GameObjects/MapObjects/Platform.cs b/DangerousD/GameCore/GameObjects/MapObjects/Platform.cs index abf76bf..f3648f9 100644 --- a/DangerousD/GameCore/GameObjects/MapObjects/Platform.cs +++ b/DangerousD/GameCore/GameObjects/MapObjects/Platform.cs @@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects; public class Platform : MapObject { - public Platform(Vector2 position, Rectangle sourceRectangle) : base(position, sourceRectangle) + public Platform(Vector2 position, Vector2 size, Rectangle sourceRectangle) : base(position, size, sourceRectangle) { IsColliderOn = true; } diff --git a/DangerousD/GameCore/GameObjects/MapObjects/StopTile.cs b/DangerousD/GameCore/GameObjects/MapObjects/StopTile.cs index 4a5dafd..096973b 100644 --- a/DangerousD/GameCore/GameObjects/MapObjects/StopTile.cs +++ b/DangerousD/GameCore/GameObjects/MapObjects/StopTile.cs @@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects; public class StopTile : MapObject { - public StopTile(Vector2 position, Rectangle sourceRectangle) : base(position, sourceRectangle) + public StopTile(Vector2 position, Vector2 size, Rectangle sourceRectangle) : base(position, size, sourceRectangle) { IsColliderOn = true; } diff --git a/DangerousD/GameCore/GameObjects/MapObjects/Tile.cs b/DangerousD/GameCore/GameObjects/MapObjects/Tile.cs index 72b7581..2b11dda 100644 --- a/DangerousD/GameCore/GameObjects/MapObjects/Tile.cs +++ b/DangerousD/GameCore/GameObjects/MapObjects/Tile.cs @@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects; public class Tile : MapObject { - public Tile(Vector2 position, Rectangle sourceRectangle) : base(position, sourceRectangle) + public Tile(Vector2 position, Vector2 size, Rectangle sourceRectangle) : base(position, size, sourceRectangle) { IsColliderOn = false; } diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index c7d0c91..ae78c21 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -27,7 +27,7 @@ namespace DangerousD.GameCore mapObjects = new List(); entities = new List(); players = new List(); - mapManager = new MapManager(); + mapManager = new MapManager(1); physicsManager = new PhysicsManager(); } diff --git a/DangerousD/GameCore/Managers/MapManager.cs b/DangerousD/GameCore/Managers/MapManager.cs index e36089b..bee1050 100644 --- a/DangerousD/GameCore/Managers/MapManager.cs +++ b/DangerousD/GameCore/Managers/MapManager.cs @@ -9,6 +9,12 @@ namespace DangerousD.GameCore.Managers public class MapManager { private int _columns; + private int _scale; + + public MapManager(int scale) + { + _scale = scale; + } //Level public void LoadLevel(string level) @@ -46,18 +52,19 @@ namespace DangerousD.GameCore.Managers Vector2 pos = new((chunkX + i % chunkW) * tileSize.X, (chunkY + i / chunkW) * tileSize.Y); - Rectangle sourceRect = new(new Point(tiles[i] % _columns, tiles[i] / _columns), tileSize.ToPoint()); + pos *= _scale; + Rectangle sourceRect = new(new Point(tiles[i] % _columns, tiles[i] / _columns ) * tileSize.ToPoint(), tileSize.ToPoint()); switch (tileType) { case "collidable": - new StopTile(pos, sourceRect); + new StopTile(pos, tileSize * _scale, sourceRect); break; case "platform": - new Platform(pos, sourceRect); + new Platform(pos, tileSize * _scale, sourceRect); break; case "non_collidable": - new Tile(pos, sourceRect); + new Tile(pos, tileSize * _scale, sourceRect); break; }} }