Fix rendering

This commit is contained in:
Mootfrost777 2023-08-17 02:00:34 +03:00
parent eeae43ebe0
commit ced2895873
6 changed files with 18 additions and 9 deletions

View file

@ -10,9 +10,11 @@ public abstract class MapObject : GameObject
public bool IsColliderOn; public bool IsColliderOn;
private Rectangle _sourceRectangle; private Rectangle _sourceRectangle;
protected override GraphicsComponent GraphicsComponent { get; } = new("tiles"); 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; _sourceRectangle = sourceRectangle;
Width = (int)size.X;
Height = (int)size.Y;
} }
public override void Initialize() public override void Initialize()

View file

@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects;
public class Platform : MapObject 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; IsColliderOn = true;
} }

View file

@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects;
public class StopTile : MapObject 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; IsColliderOn = true;
} }

View file

@ -5,7 +5,7 @@ namespace DangerousD.GameCore.GameObjects.MapObjects;
public class Tile : MapObject 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; IsColliderOn = false;
} }

View file

@ -27,7 +27,7 @@ namespace DangerousD.GameCore
mapObjects = new List<MapObject>(); mapObjects = new List<MapObject>();
entities = new List<Entity>(); entities = new List<Entity>();
players = new List<Player>(); players = new List<Player>();
mapManager = new MapManager(); mapManager = new MapManager(1);
physicsManager = new PhysicsManager(); physicsManager = new PhysicsManager();
} }

View file

@ -9,6 +9,12 @@ namespace DangerousD.GameCore.Managers
public class MapManager public class MapManager
{ {
private int _columns; private int _columns;
private int _scale;
public MapManager(int scale)
{
_scale = scale;
}
//Level //Level
public void LoadLevel(string level) public void LoadLevel(string level)
@ -46,18 +52,19 @@ namespace DangerousD.GameCore.Managers
Vector2 pos = new((chunkX + i % chunkW) * tileSize.X, Vector2 pos = new((chunkX + i % chunkW) * tileSize.X,
(chunkY + i / chunkW) * tileSize.Y); (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) switch (tileType)
{ {
case "collidable": case "collidable":
new StopTile(pos, sourceRect); new StopTile(pos, tileSize * _scale, sourceRect);
break; break;
case "platform": case "platform":
new Platform(pos, sourceRect); new Platform(pos, tileSize * _scale, sourceRect);
break; break;
case "non_collidable": case "non_collidable":
new Tile(pos, sourceRect); new Tile(pos, tileSize * _scale, sourceRect);
break; break;
}} }}
} }