COnnected maploader and objects creation + mapobject fix + graphicsDeviceFix

This commit is contained in:
SergoDobro 2024-08-16 18:21:50 +03:00
parent 5ef0a660cc
commit 8bf1bff778
11 changed files with 96 additions and 32 deletions

View file

@ -82,8 +82,6 @@
/processorParam:Quality=Best
/build:sounds/Zombi stoit.wav
#begin Textures/GUI/checkboxs_off.png
#begin Textures/GUI/background/base.png
/importer:TextureImporter
/processor:TextureProcessor
@ -142,9 +140,9 @@
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off.png
/build:Textures/GUI/checkboxs_off-on.png
#begin Textures/GUI/checkboxs_off-on.png
#begin Textures/GUI/checkboxs_off.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
@ -154,7 +152,7 @@
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off-on.png
/build:Textures/GUI/checkboxs_off.png
#begin Textures/GUI/checkboxs_on.png
/importer:TextureImporter
@ -192,18 +190,6 @@
/processorParam:TextureFormat=Color
/build:Textures/GUI/mouse.png
#begin Textures/GUI/switch.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/switch.png
#begin Textures/GUI/Switch_backgrownd.png
/importer:TextureImporter
/processor:TextureProcessor
@ -216,3 +202,27 @@
/processorParam:TextureFormat=Color
/build:Textures/GUI/Switch_backgrownd.png
#begin Textures/GUI/switch.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/switch.png
#begin Textures/TileSets/TilesetFloor.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSets/TilesetFloor.png;Textures/TileSets/TileSet 1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -50,6 +50,7 @@ namespace ZoFo.GameCore
}
internal void Draw(SpriteBatch spriteBatch)
{
}
}
}

View file

@ -12,7 +12,7 @@ using MonogameLibrary.UI.Elements;
namespace ZoFo.GameCore.GUI;
public class HUD
public class HUD : AbstractGUI
{
protected UIManager Manager = new();
protected List<DrawableUIElement> Elements = new();
@ -39,6 +39,10 @@ public class HUD
public virtual void Draw(SpriteBatch spriteBatch)
{
Manager.Draw(spriteBatch);
//Manager.Draw(spriteBatch);
}
protected override void CreateUI()
{
}
}

View file

@ -41,11 +41,14 @@ public class SelectModeMenu : AbstractGUI
// single
Server server = new Server(); //Server Logic SinglePlayer
Client client = new Client();
server.CreateRoom(1);
client.JoinYourself();
AppManager.Instance.SetServer(server);
AppManager.Instance.SetClient(client);
AppManager.Instance.ChangeState(GameState.HostPlaying);
AppManager.Instance.SetGUI(new HUD());
//server.CreateRoom(1);
//client.JoinYourself();
server.StartGame();
string key = client.IsConnected.ToString();
AppManager.Instance.debugHud.Set(key,"SinglePlayer");

View file

@ -91,8 +91,12 @@ namespace ZoFo.GameCore.GameManagers.MapManager
{
using (StreamReader reader = new StreamReader(path))
{
var options = new JsonSerializerOptions //TODO Remove
{
PropertyNameCaseInsensitive = true
};
string data = reader.ReadToEnd();
return JsonSerializer.Deserialize<TileSet>(data);
return JsonSerializer.Deserialize<TileSet>(data, options);
}
}
}

View file

@ -10,7 +10,7 @@ namespace ZoFo.GameCore.GameObjects.Entities
{
public abstract class Entity : GameObject
{
protected override GraphicsComponent graphicsComponent => null;
public override GraphicsComponent graphicsComponent => null;
public CollisionComponent collisionComponent { get; protected set; }
public int Id { get; set; }
protected Entity(Vector2 position) : base(position)

View file

@ -11,12 +11,13 @@ public abstract class GameObject
{
public Vector2 position;
public Vector2 rotation; //вектор направления объекта
protected abstract GraphicsComponent graphicsComponent { get; }
public abstract GraphicsComponent graphicsComponent { get; }
#region ServerSide
public GameObject(Vector2 position)
{
this.position = position;
AppManager.Instance.server.RegisterGameObject(this);
}
public virtual void UpdateLogic(GameTime gameTime)
{

View file

@ -14,12 +14,13 @@ namespace ZoFo.GameCore.GameObjects.MapObjects
{
public virtual bool IsColliderOn { get; protected set; } = true;
private Rectangle _sourceRectangle;
protected override GraphicsComponent graphicsComponent => new("tiles");
public override GraphicsComponent graphicsComponent => new();
public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position)
{
_sourceRectangle = sourceRectangle;
graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0, (int)size.X, (int)size.Y);
graphicsComponent.BuildComponent("Textures\\TileSets\\"+textureName);
}
public override void Draw(SpriteBatch spriteBatch)
{

View file

@ -5,6 +5,7 @@ using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.MapManager;
using ZoFo.GameCore.GameManagers.NetworkManager;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
@ -21,18 +22,33 @@ namespace ZoFo.GameCore
{
networkManager = new ServerNetworkManager();
networkManager.GetDataSend += OnDataSend;
}
#region server logic as App
//TODO Comment pls
public void OnDataSend(string data)
{
List<IUpdateData> updateDatas = JsonSerializer.Deserialize<List<IUpdateData>>(data);
//ТУТ Switch case будет честное слово
for (int i = 0; i < updateDatas.Count; i++) {
ProcessIUpdateData(updateDatas[i]);
}
}
/// <summary>
/// Обработка апдейтсов, которые нам прислал клиент
/// </summary>
/// <param name="updateData"></param>
public void ProcessIUpdateData(IUpdateData updateData)
{
//ТУТ Switch case будет честное слово
}
/// <summary>
/// Для красоты) Отдел Серверов
/// добавляет в лист updates новую data
/// </summary>
/// <param name="data"></param>
public void AddData(IUpdateData data)//добавляет в лист updates новую data
public void AddData(IUpdateData data)
{
networkManager.AddData(data);
}
@ -46,7 +62,18 @@ namespace ZoFo.GameCore
networkManager.Start(players);
}
// public void StartGame() { } принудительный запуск
/// <summary>
/// Запуск игры в комнате
/// </summary>
public void StartGame() {
//TODO начинает рассылку и обмен пакетами игры
//Грузит карту
gameObjects = new List<GameObject>();
entities = new List<Entity>();
new MapManager().LoadMap();
}
/// <summary>
/// Добавляет UpdateGameEnded и отключает игроков
@ -57,7 +84,7 @@ namespace ZoFo.GameCore
networkManager.AddData(gameEnded);
networkManager.CloseConnection();
}
#endregion
private List<GameObject> gameObjects;
private List<Entity> entities; //entity
public void Update(GameTime gameTime)
@ -80,9 +107,10 @@ namespace ZoFo.GameCore
/// Регистрирует игровой объект
/// </summary>
/// <param name="gameObject"></param>
public void RegisterEntity(GameObject gameObject)
public void RegisterGameObject(GameObject gameObject)
{
gameObjects.Add(gameObject);
gameObjects.Add(gameObject);
AddData(new UpdateTileCreated());//TODO
}
}
}

View file

@ -66,6 +66,14 @@ namespace ZoFo.GameCore.ZoFo_graphics
public GraphicsComponent(string textureName)
{
BuildComponent(textureName);
}
public GraphicsComponent()
{
}
public void BuildComponent(string textureName)
{
animations = new List<AnimationContainer>();
textures = new List<Texture2D>();
var texture = AppManager.Instance.Content.Load<Texture2D>(textureName);
@ -141,6 +149,10 @@ namespace ZoFo.GameCore.ZoFo_graphics
public void Update()
{
if (currentAnimation is null)
{
return;
}
if (interval == 0)
{
currentFrame++;