mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Basic tilemap
This commit is contained in:
@@ -11,6 +11,7 @@ using GlitchyEngine.World;
|
|||||||
using GlitchyEngine.Renderer.Text;
|
using GlitchyEngine.Renderer.Text;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using msdfgen;
|
using msdfgen;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
namespace Sandbox
|
namespace Sandbox
|
||||||
{
|
{
|
||||||
@@ -39,6 +40,53 @@ namespace Sandbox
|
|||||||
SubTexture2D _treeSprite ~ _.ReleaseRef();
|
SubTexture2D _treeSprite ~ _.ReleaseRef();
|
||||||
SubTexture2D _barrelSprite ~ _.ReleaseRef();
|
SubTexture2D _barrelSprite ~ _.ReleaseRef();
|
||||||
|
|
||||||
|
SubTexture2D _grassSprite ~ _.ReleaseRef();
|
||||||
|
SubTexture2D _dirtSprite ~ _.ReleaseRef();
|
||||||
|
SubTexture2D _waterSprite ~ _.ReleaseRef();
|
||||||
|
|
||||||
|
static String s_MapTiles = """
|
||||||
|
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWDDDDDDDWWWWWWWWWWWWWWWW
|
||||||
|
WWWWWWDDDDDDDDDDDDDDDWWWWWWWWWWW
|
||||||
|
WWWWWDDDDDDDDDDDDDDDDDDDDDWWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDDWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDDWWWW
|
||||||
|
WWWWWWDDDDDDDDDDDDDDDDDDDDDDWWWW
|
||||||
|
WWWWWWDDDDDDDDDDDDDDDDDDDDDDWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDDDDDDDWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDDDDDWWWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDDDDDWWWWWW
|
||||||
|
WWWWWWDDDDDDDDDDDDDDDDDDDDWWWWWW
|
||||||
|
WWWWWDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDDWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDDWWWWWW
|
||||||
|
WWWWDDDDDDDDDDDDDDDDDDDDDWWWWWWW
|
||||||
|
WWWWWDDDDDDDDDDDDDDDDDDDWWWWWWWW
|
||||||
|
WWWWWWDDDDDDDDDDDDDDDDDWWWWWWWWW
|
||||||
|
WWWWWWWDDDDDDDDDDDDDDDDWWWWWWWWW
|
||||||
|
WWWWWWWWDDDDDDDDDDDDDDWWWWWWWWWW
|
||||||
|
WWWWWWWWWDDDDDDDDDDDWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWWDDDDDDDDWWWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||||
|
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||||
|
""";
|
||||||
|
|
||||||
|
Dictionary<char8, SubTexture2D> _mapMap ~ {
|
||||||
|
for (var value in _.Values)
|
||||||
|
{
|
||||||
|
value.ReleaseRef();
|
||||||
|
}
|
||||||
|
delete _;
|
||||||
|
};
|
||||||
|
|
||||||
[AllowAppend]
|
[AllowAppend]
|
||||||
public this() : base("Example")
|
public this() : base("Example")
|
||||||
{
|
{
|
||||||
@@ -82,6 +130,15 @@ namespace Sandbox
|
|||||||
|
|
||||||
_treeSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(5, 10), Vector2(128), .(1, 2));
|
_treeSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(5, 10), Vector2(128), .(1, 2));
|
||||||
_barrelSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(9, 11), Vector2(128));
|
_barrelSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(9, 11), Vector2(128));
|
||||||
|
|
||||||
|
_grassSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(1, 1), Vector2(128));
|
||||||
|
_dirtSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(6, 1), Vector2(128));
|
||||||
|
_waterSprite = SubTexture2D.CreateFromGrid(_spriteSheet, Vector2(11, 1), Vector2(128));
|
||||||
|
|
||||||
|
_mapMap = new Dictionary<char8, SubTexture2D>();
|
||||||
|
_mapMap['W'] = _waterSprite..AddRef();
|
||||||
|
_mapMap['D'] = _dirtSprite..AddRef();
|
||||||
|
_mapMap['G'] = _grassSprite..AddRef();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Update(GameTime gameTime)
|
public override void Update(GameTime gameTime)
|
||||||
@@ -144,7 +201,25 @@ namespace Sandbox
|
|||||||
Renderer2D.BeginScene(cameraController.Camera, .BackToFront);
|
Renderer2D.BeginScene(cameraController.Camera, .BackToFront);
|
||||||
|
|
||||||
Renderer2D.DrawQuad(Vector3(0, 0, 1), Vector2(1, 2), 0, _treeSprite);
|
Renderer2D.DrawQuad(Vector3(0, 0, 1), Vector2(1, 2), 0, _treeSprite);
|
||||||
Renderer2D.DrawQuad(Vector3(1, 0, 1), Vector2(1, 1), 0, _barrelSprite);
|
Renderer2D.DrawQuad(Vector3(1, 0, 1), Vector2(1, 1), 0, _grassSprite);
|
||||||
|
|
||||||
|
Vector2 position = Vector2.Zero;
|
||||||
|
|
||||||
|
for(char8 c in s_MapTiles.RawChars)
|
||||||
|
{
|
||||||
|
if (c == '\n')
|
||||||
|
{
|
||||||
|
position.X = 0;
|
||||||
|
position.Y += 1.0f;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
SubTexture2D tile = _mapMap[c];
|
||||||
|
|
||||||
|
Renderer2D.DrawQuad(Vector3(position, -5), Vector2.One, 0, tile);
|
||||||
|
|
||||||
|
position.X += 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
Renderer2D.EndScene();
|
Renderer2D.EndScene();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user