From 75228367d0d87d3758b20be7fd09e3038af1f1c7 Mon Sep 17 00:00:00 2001 From: Chris Bell Date: Sat, 16 Nov 2024 23:33:57 -0600 Subject: [PATCH] Added camera, added ability to change tiles, added 'player', basic input, etc --- .idea/.idea.Tiles/.idea/vcs.xml | 6 + Tiles.sln.DotSettings.user | 2 + Tiles/Game.cs | 129 ++++++++++++++++-- Tiles/Tile.cs | 5 +- Tiles/bin/Debug/net8.0/Tiles.dll | Bin 7680 -> 10240 bytes Tiles/bin/Debug/net8.0/Tiles.pdb | Bin 12020 -> 12936 bytes .../net8.0/data/tiles/images/bedrock.png | Bin 0 -> 4420 bytes Tiles/data/tiles/images/bedrock.png | Bin 0 -> 4420 bytes Tiles/obj/Debug/net8.0/Tiles.AssemblyInfo.cs | 2 +- .../net8.0/Tiles.AssemblyInfoInputs.cache | 2 +- .../net8.0/Tiles.csproj.FileListAbsolute.txt | 1 + Tiles/obj/Debug/net8.0/Tiles.dll | Bin 7680 -> 10240 bytes Tiles/obj/Debug/net8.0/Tiles.pdb | Bin 12020 -> 12936 bytes Tiles/obj/Debug/net8.0/ref/Tiles.dll | Bin 5632 -> 6144 bytes Tiles/obj/Debug/net8.0/refint/Tiles.dll | Bin 5632 -> 6144 bytes 15 files changed, 134 insertions(+), 13 deletions(-) create mode 100644 .idea/.idea.Tiles/.idea/vcs.xml create mode 100644 Tiles.sln.DotSettings.user create mode 100644 Tiles/bin/Debug/net8.0/data/tiles/images/bedrock.png create mode 100644 Tiles/data/tiles/images/bedrock.png diff --git a/.idea/.idea.Tiles/.idea/vcs.xml b/.idea/.idea.Tiles/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/.idea.Tiles/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Tiles.sln.DotSettings.user b/Tiles.sln.DotSettings.user new file mode 100644 index 0000000..ce2970b --- /dev/null +++ b/Tiles.sln.DotSettings.user @@ -0,0 +1,2 @@ + + ForceIncluded \ No newline at end of file diff --git a/Tiles/Game.cs b/Tiles/Game.cs index 4f8df70..38d6a20 100644 --- a/Tiles/Game.cs +++ b/Tiles/Game.cs @@ -6,8 +6,8 @@ namespace Tiles; public class Game { const int _tileSize = 8; - const int _worldWidth = 1920/8; - const int _worldHeight = 1080/8; + const int _worldWidth = 1000; + const int _worldHeight = 1000; private int _screenWidth; private int _screenHeight; @@ -15,12 +15,30 @@ public class Game private Dictionary _tiles = new(); private Dictionary _worldGrid = new(); + private Vector2 _playerPosition; + private float _playerSpeed = 2f; + + private Camera2D _camera; + + private string _currentSelectedTile = "air"; + private int _currentSelectedIndex = 0; + public Game(int screenWidth, int screenHeight) { _screenWidth = screenWidth; _screenHeight = screenHeight; Raylib.InitWindow(_screenWidth, _screenHeight, "Tiles"); Raylib.SetTargetFPS(60); + + _playerPosition = GetGlobalPositionFromGrid(_worldWidth/2, _worldHeight/2); + + _camera = new Camera2D() + { + Target = _playerPosition, + Offset = new Vector2(_screenWidth / 2, _screenHeight / 2), + Rotation = 0f, + Zoom = 5f + }; SetupTiles(); @@ -28,36 +46,100 @@ public class Game while (!Raylib.WindowShouldClose()) { + HandleInput(); + _camera.Target = _playerPosition; + Raylib.BeginDrawing(); Raylib.ClearBackground(new Color(20, 70, 100, 255)); + Raylib.BeginMode2D(_camera); DrawWorld(); - + DrawPlayer(); + DrawDebug(); + + Raylib.EndMode2D(); Raylib.EndDrawing(); } } + private void HandleInput() + { + if (Raylib.IsKeyDown(KeyboardKey.W)) _playerPosition += new Vector2(0, -1) * _playerSpeed; + if (Raylib.IsKeyDown(KeyboardKey.A)) _playerPosition += new Vector2(-1, 0) * _playerSpeed; + if (Raylib.IsKeyDown(KeyboardKey.S)) _playerPosition += new Vector2(0, 1) * _playerSpeed; + if (Raylib.IsKeyDown(KeyboardKey.D)) _playerPosition += new Vector2(1, 0) * _playerSpeed; + + if (Raylib.IsKeyReleased(KeyboardKey.Right)) + { + _currentSelectedIndex = (_currentSelectedIndex + 1) % _tiles.Count; + _currentSelectedTile = _tiles.Keys.ElementAt(_currentSelectedIndex); + } + + if (Raylib.IsKeyReleased(KeyboardKey.Left)) + { + _currentSelectedIndex = (_currentSelectedIndex - 1) % _tiles.Count; + _currentSelectedTile = _tiles.Keys.ElementAt(_currentSelectedIndex); + } + + if (Raylib.IsKeyReleased(KeyboardKey.Space)) + { + Random random = new(); + var tile = _tiles.Keys.ElementAt(random.Next(_tiles.Keys.Count)); + SetTile(GetGridPositionFromGlobalPosition((int)_playerPosition.X, (int)_playerPosition.Y), _currentSelectedTile); + } + + if (Raylib.IsKeyReleased(KeyboardKey.Zero)) _currentSelectedTile = "air"; + } + private void SetupTiles() { _tiles.Add("dirt", new("dirt", "data/tiles/images/dirt.png")); _tiles.Add("grass", new("grass", "data/tiles/images/grass.png")); _tiles.Add("rock", new("rock", "data/tiles/images/rock.png")); + _tiles.Add("bedrock", new("bedrock", "data/tiles/images/bedrock.png")); } private void DrawWorld() { - foreach (var tile in _worldGrid) + // Calculate the boundaries of the visible region in grid coordinates + int startX = Math.Max((int)(_camera.Target.X - (_screenWidth / 2 / _camera.Zoom)) / _tileSize, 0); + int startY = Math.Max((int)(_camera.Target.Y - (_screenHeight / 2 / _camera.Zoom)) / _tileSize, 0); + int endX = Math.Min((int)(_camera.Target.X + (_screenWidth / 2 / _camera.Zoom)) / _tileSize, _worldWidth - 1); + int endY = Math.Min((int)(_camera.Target.Y + (_screenHeight / 2 / _camera.Zoom)) / _tileSize, _worldHeight - 1); + + // Loop only through the visible tiles + for (int x = startX; x <= endX; x++) { - if (tile.Value == "air") + for (int y = startY; y <= endY; y++) { - Raylib.DrawRectangle((int)tile.Key.X * _tileSize,(int)tile.Key.Y * _tileSize, _tileSize, _tileSize, new(0,0,0,0)); - } - else - { - Raylib.DrawTexture(_tiles[tile.Value].Texture, (int)tile.Key.X * _tileSize,(int)tile.Key.Y * _tileSize, Color.White); + Vector2 position = new(x, y); + if (_worldGrid.TryGetValue(position, out var tileType) && tileType != "air") + { + Raylib.DrawTexture(_tiles[tileType].Texture, x * _tileSize, y * _tileSize, Color.White); + } } } } + + + private void DrawPlayer() + { + Raylib.DrawRectangle((int)_playerPosition.X, (int)_playerPosition.Y, _tileSize, _tileSize, new(255,255,0,100)); + } + + private void DrawDebug() + { + int textSize = 10; + + // Position the text relative to the camera's offset + int textPositionX = (int)(_camera.Target.X - _screenWidth / 2 / _camera.Zoom) + 10; + int textPositionY = (int)(_camera.Target.Y - _screenHeight / 2 / _camera.Zoom) + 10; + + Raylib.DrawText(_currentSelectedTile, textPositionX, textPositionY, textSize, Color.White); + Raylib.DrawText("Global: " + _playerPosition.ToString(), textPositionX, textPositionY + (textSize*2), textSize, Color.White); + Raylib.DrawText("Grid: " + GetGridPositionFromGlobalPosition((int)_playerPosition.X, (int)_playerPosition.Y).ToString().ToUpper(), + textPositionX, textPositionY + (textSize * 3), textSize, Color.White); + } // private void GenerateWorld() @@ -98,5 +180,32 @@ public class Game _worldGrid.Add(new(x, y), tileType); } } + + _worldGrid[new(0,72)] = "air"; + } + + private Vector2 GetGridPositionFromGlobalPosition(int x, int y) + { + int gridX = x / _tileSize; + int gridY = y / _tileSize; + + // Check if the calculated grid position is within the bounds of the world grid + if (gridX >= 0 && gridX < _worldWidth && gridY >= 0 && gridY < _worldHeight) + { + return new Vector2(gridX, gridY); + } + + // Return (0, 0) as a failsafe if outside the world grid + return new Vector2(0, 0); + } + + private void SetTile(Vector2 position, string tileType) + { + _worldGrid[position] = tileType; + } + + private Vector2 GetGlobalPositionFromGrid(int x, int y) + { + return new Vector2(x * _tileSize, y * _tileSize); } } \ No newline at end of file diff --git a/Tiles/Tile.cs b/Tiles/Tile.cs index 2587973..f4c2f52 100644 --- a/Tiles/Tile.cs +++ b/Tiles/Tile.cs @@ -7,12 +7,15 @@ public class Tile public string Name { get; private set; } = string.Empty; public Image Image { get; private set; } public Texture2D Texture { get; private set; } + + public bool Transparent { get; private set; } - public Tile(string name, string pathToImage) + public Tile(string name, string pathToImage, bool transparent = false) { Name = name; Image = LoadImage(pathToImage); Texture = LoadTexture(Image); + Transparent = transparent; } private Image LoadImage(string path) diff --git a/Tiles/bin/Debug/net8.0/Tiles.dll b/Tiles/bin/Debug/net8.0/Tiles.dll index 0558232ac0cf9a89efcaedccd6f07c22b404d8e0..8c96e2200af01764a8147c31f0534a334d7a1ac7 100644 GIT binary patch literal 10240 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 diff --git a/Tiles/bin/Debug/net8.0/Tiles.pdb b/Tiles/bin/Debug/net8.0/Tiles.pdb index c5e64e12dc22f1af33e14040eea08475187e59cd..1e37c2fd53f670af866473fe14f03d4a049e404e 100644 GIT binary patch delta 2104 zcmZuydu)?c6hHU&YkRwP54KTY>s;r?pzFu7VGW9pY-RF(G;YY|oH$rBihICTA_Jx0 zIzkv2K|TZtzF5K^1A-*@_=gxYh#HJSA`sL7iQx}TB*Bot9~%9gukEPOHotSv@0@eb zeVu#1yB#~Dd#e&%L{u5+T7!me0w-+X+lXG*h)#i5Hpd5Iecgjl=}9{g%v8CunHr!+ zSYNPmQ4`v|;P-X#a8ExcbN*C4x+%Ub{QfV$fBQyRJRB~*y;~4DR+WvpT#5)fRT9m$ z5*C0=0SbWzfCupdIRFPTM<2r6Ebid;&1>b8xKlY$06F?YP1Vn&Uz>7c>=m90eL%c7V>Bf2|L+>e#le72G(^0vR*$c?Q~tg30a?-Y4<>^ ztCgaC5b@~dc%*+Y7LWD!wbEd`b0FSI>~CAl0d4;ZXiEja80(2rcV}>2<`LUIzwOSCz4{&P#8WpmHBN2nsaZIBxAfXuJFZ;5 zd1w8hv6BsEv$ot{wDt7Q_Xb8E|LfYvS10ef-yVwGXeqjTH&` zuyg&nKR)_+SFNEEkM zLtTU7 zE~rW>RIZI4rNu#zIsYZ0Y>!2BZ4R!PmRid^sY<9xk}ox6P~$83zrFnq+9k$!#G1XS7 zrl%%oZL4jt!GV|YWqdoZmVy<6Y`qf}9I2sn;aU62^W>%SdQLO5}@m z!Z=697(PkDc-P!MYrlG^y3@~@%+lKFt7oBlgmDJxN~F>tFx90FoD!D<*I^=m{;)oDU1u~=a(vveUtF43gaRy^->kEMS6wVP+Jq?&!Ofn=f>l%3UK4B zbJKiJFkR;!sT7q<96E}(^b delta 1159 zcmYjQYe-a45T0}H-n&QZQs@b7P({U2%8$=FB&9&fGaObB;%Tw4W`E z?;xUr=3P6n&>Nsff*&GkRES#H*V5k?+Z)}-{>!l0*w)rU*P%DFzP@c^J=P!Kv;@4a zvzvouEWOg=4o4d^@IK%vHs- z=xJEzuMT+nx0l?WsW95LDgQ($KeEspo4m9l_VCZ?s&HSu9KBdcu`@*jYi0(YiThFe zaFMG652e(tI%v5hhv5tPDqS{Qb{-2JB@NZdmbyk2lCsIk=1dzZDCB^kf?hO)2gqX# zhsxuLmm={|k%zx=XGB01v|8$Zs+Hu227yCcP%KdjmtE=tFC~bMs~D9S#!hw%%8@#X zi;z6VeNqowU*c43uut?P4Rv{HZ Zy~f(|vMfxG$j1eWrH-c|2V^!T=|4(eo?HL` diff --git a/Tiles/bin/Debug/net8.0/data/tiles/images/bedrock.png b/Tiles/bin/Debug/net8.0/data/tiles/images/bedrock.png new file mode 100644 index 0000000000000000000000000000000000000000..d5410b13e0bc00a91d861932a937182b6c02bfc9 GIT binary patch literal 4420 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 diff --git a/Tiles/obj/Debug/net8.0/Tiles.pdb b/Tiles/obj/Debug/net8.0/Tiles.pdb index c5e64e12dc22f1af33e14040eea08475187e59cd..1e37c2fd53f670af866473fe14f03d4a049e404e 100644 GIT binary patch delta 2104 zcmZuydu)?c6hHU&YkRwP54KTY>s;r?pzFu7VGW9pY-RF(G;YY|oH$rBihICTA_Jx0 zIzkv2K|TZtzF5K^1A-*@_=gxYh#HJSA`sL7iQx}TB*Bot9~%9gukEPOHotSv@0@eb zeVu#1yB#~Dd#e&%L{u5+T7!me0w-+X+lXG*h)#i5Hpd5Iecgjl=}9{g%v8CunHr!+ zSYNPmQ4`v|;P-X#a8ExcbN*C4x+%Ub{QfV$fBQyRJRB~*y;~4DR+WvpT#5)fRT9m$ z5*C0=0SbWzfCupdIRFPTM<2r6Ebid;&1>b8xKlY$06F?YP1Vn&Uz>7c>=m90eL%c7V>Bf2|L+>e#le72G(^0vR*$c?Q~tg30a?-Y4<>^ ztCgaC5b@~dc%*+Y7LWD!wbEd`b0FSI>~CAl0d4;ZXiEja80(2rcV}>2<`LUIzwOSCz4{&P#8WpmHBN2nsaZIBxAfXuJFZ;5 zd1w8hv6BsEv$ot{wDt7Q_Xb8E|LfYvS10ef-yVwGXeqjTH&` zuyg&nKR)_+SFNEEkM zLtTU7 zE~rW>RIZI4rNu#zIsYZ0Y>!2BZ4R!PmRid^sY<9xk}ox6P~$83zrFnq+9k$!#G1XS7 zrl%%oZL4jt!GV|YWqdoZmVy<6Y`qf}9I2sn;aU62^W>%SdQLO5}@m z!Z=697(PkDc-P!MYrlG^y3@~@%+lKFt7oBlgmDJxN~F>tFx90FoD!D<*I^=m{;)oDU1u~=a(vveUtF43gaRy^->kEMS6wVP+Jq?&!Ofn=f>l%3UK4B zbJKiJFkR;!sT7q<96E}(^b delta 1159 zcmYjQYe-a45T0}H-n&QZQs@b7P({U2%8$=FB&9&fGaObB;%Tw4W`E z?;xUr=3P6n&>Nsff*&GkRES#H*V5k?+Z)}-{>!l0*w)rU*P%DFzP@c^J=P!Kv;@4a zvzvouEWOg=4o4d^@IK%vHs- z=xJEzuMT+nx0l?WsW95LDgQ($KeEspo4m9l_VCZ?s&HSu9KBdcu`@*jYi0(YiThFe zaFMG652e(tI%v5hhv5tPDqS{Qb{-2JB@NZdmbyk2lCsIk=1dzZDCB^kf?hO)2gqX# zhsxuLmm={|k%zx=XGB01v|8$Zs+Hu227yCcP%KdjmtE=tFC~bMs~D9S#!hw%%8@#X zi;z6VeNqowU*c43uut?P4Rv{HZ Zy~f(|vMfxG$j1eWrH-c|2V^!T=|4(eo?HL` diff --git a/Tiles/obj/Debug/net8.0/ref/Tiles.dll b/Tiles/obj/Debug/net8.0/ref/Tiles.dll index 77f1c5983a2ac26720b7882e897bc3d92a4d0dab..4d09e40019400b02100877521ae48b38ff498d37 100644 GIT binary patch delta 968 zcmZ8gOH30{6g}_tL;00KK@5l~6hlp+Oh2^KAW0({AWHZYNc<#FX(1}9rfqZ~!AATo zSU{dp<3`u6G+nqgVMkm@)VMS3g}5;;NK8C4fD-S^J@=h+@12`@^QPEQ)K?z2#zw!t zz@BZQ6_r8`)iPaJ0=uDM2@z zo%93dVRImt&&^O|@vrFR`JEM0Zi8}5zbKgHP zc!sf!+z{la=WkpgH;wJ0zgew28=E`m8HBltYEj^ z*?@IW*5OZJh;RB%j`5IeT#^UtAUaS+bfUb}QvOQ@=Q4$<@mwmKznRKqvIP_l?9HRX z|KC}4RC&V!4v!Qrm(2sW-Gkae6Nbp7(_<5Ex3u|~@RLk9noXyRE9Bb1Ve@q4t2*O(b-JUh{rQ2Jspp!hU)G^KY4fe&28SS#A-`}7*MyW zpOZ9<$0+>HLcPoOOrL%gzX->)SBi``jJ5jQH1C* zr1{l#E2gOL@;D3xnK!t?jNQ~Dte#~>kXoF}e1^{MICD_jT8~&Rovght%M-i*oyV~L Ij8(nt4}yuLH~;_u delta 754 zcmZ8fOK4L;6g~5j_mZ^fGieerRxuy3Pg=vXep;2{vlU~hp{+>@>L!?l_@P2lQ1BP2 zh%0HBMYB=6=t6WES8iPBLb?zHgC9i1oeM!win{X5Ym3GExaZw-X71d%GgGr`y|Z^x zt@wwhSh3GYpxKO%JS(zf^ae!k8<&V9w^!H2D8*!x|? zYpkN|C|!e&f&+YHu3+VUIc`|T7c?M!9SC`VCo0ZQSI$nIsj93OtmfrEUCiSpZgdqIM4Yd7t755#&xgY2WqY|<0><*GVdy0x08Vc2D$mII7BSs2s`)i)7Y}^ zp0lqx5m?eS#zaG!?UW(6c3=!TVUXhOCDkXupK)3#YUb^((D{D%4b^SqFR&_u<^TWy diff --git a/Tiles/obj/Debug/net8.0/refint/Tiles.dll b/Tiles/obj/Debug/net8.0/refint/Tiles.dll index 77f1c5983a2ac26720b7882e897bc3d92a4d0dab..4d09e40019400b02100877521ae48b38ff498d37 100644 GIT binary patch delta 968 zcmZ8gOH30{6g}_tL;00KK@5l~6hlp+Oh2^KAW0({AWHZYNc<#FX(1}9rfqZ~!AATo zSU{dp<3`u6G+nqgVMkm@)VMS3g}5;;NK8C4fD-S^J@=h+@12`@^QPEQ)K?z2#zw!t zz@BZQ6_r8`)iPaJ0=uDM2@z zo%93dVRImt&&^O|@vrFR`JEM0Zi8}5zbKgHP zc!sf!+z{la=WkpgH;wJ0zgew28=E`m8HBltYEj^ z*?@IW*5OZJh;RB%j`5IeT#^UtAUaS+bfUb}QvOQ@=Q4$<@mwmKznRKqvIP_l?9HRX z|KC}4RC&V!4v!Qrm(2sW-Gkae6Nbp7(_<5Ex3u|~@RLk9noXyRE9Bb1Ve@q4t2*O(b-JUh{rQ2Jspp!hU)G^KY4fe&28SS#A-`}7*MyW zpOZ9<$0+>HLcPoOOrL%gzX->)SBi``jJ5jQH1C* zr1{l#E2gOL@;D3xnK!t?jNQ~Dte#~>kXoF}e1^{MICD_jT8~&Rovght%M-i*oyV~L Ij8(nt4}yuLH~;_u delta 754 zcmZ8fOK4L;6g~5j_mZ^fGieerRxuy3Pg=vXep;2{vlU~hp{+>@>L!?l_@P2lQ1BP2 zh%0HBMYB=6=t6WES8iPBLb?zHgC9i1oeM!win{X5Ym3GExaZw-X71d%GgGr`y|Z^x zt@wwhSh3GYpxKO%JS(zf^ae!k8<&V9w^!H2D8*!x|? zYpkN|C|!e&f&+YHu3+VUIc`|T7c?M!9SC`VCo0ZQSI$nIsj93OtmfrEUCiSpZgdqIM4Yd7t755#&xgY2WqY|<0><*GVdy0x08Vc2D$mII7BSs2s`)i)7Y}^ zp0lqx5m?eS#zaG!?UW(6c3=!TVUXhOCDkXupK)3#YUb^((D{D%4b^SqFR&_u<^TWy