Merge pull request #31 from progtime-net/UpdateEntity

add register game objects
This commit is contained in:
Andrey 2024-08-16 23:38:43 +03:00 committed by Mootfrost777
commit af5253146a
9 changed files with 35 additions and 21 deletions

View file

@ -66,7 +66,7 @@ namespace ZoFo.GameCore
} }
} }
internal void GotData(IUpdateData update) internal void GotData(UpdateData update)
{ {
if (update is UpdateTileCreated) if (update is UpdateTileCreated)
{ {

View file

@ -41,12 +41,9 @@ public class SelectModeMenu : AbstractGUI
// single // single
Server server = new Server(); Server server = new Server();
Client client = new Client(); Client client = new Client();
<<<<<<< HEAD
server.CreateRoom(1); server.CreateRoom(1);
client.JoinYourself(); client.JoinYourself();
=======
>>>>>>> e9698a8669e52b8738987a7a6ccb79c6726f91ac
AppManager.Instance.SetServer(server); AppManager.Instance.SetServer(server);
AppManager.Instance.SetClient(client); AppManager.Instance.SetClient(client);
AppManager.Instance.ChangeState(GameState.HostPlaying); AppManager.Instance.ChangeState(GameState.HostPlaying);

View file

@ -11,6 +11,7 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers namespace ZoFo.GameCore.GameManagers
{ {
public enum ScopeState { Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight } public enum ScopeState { Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight }
public class InputManager public class InputManager
{ {
public delegate void Delegat(); public delegate void Delegat();

View file

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Net.Sockets; using System.Net.Sockets;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
@ -21,7 +22,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
private IPEndPoint endPoint; private IPEndPoint endPoint;
private Socket socket; private Socket socket;
private List<Socket> clients; private List<Socket> clients;
public List<IUpdateData> updates; public List<UpdateData> updates;
public delegate void OnDataSend(string data); public delegate void OnDataSend(string data);
public event OnDataSend GetDataSend; // event public event OnDataSend GetDataSend; // event
Dictionary<Socket, Thread> managerThread; Dictionary<Socket, Thread> managerThread;

View file

@ -16,8 +16,10 @@ namespace ZoFo.GameCore.GameObjects.Entities
protected Entity(Vector2 position) : base(position) protected Entity(Vector2 position) : base(position)
{ {
} }
public virtual void Update()
{
}
} }
} }

View file

@ -3,20 +3,26 @@ using Microsoft.Xna.Framework.Graphics;
using System; using System;
using ZoFo.GameCore.GameObjects.Entities; using ZoFo.GameCore.GameObjects.Entities;
using ZoFo.GameCore.ZoFo_graphics; using ZoFo.GameCore.ZoFo_graphics;
using ZoFo.GameCore.GameManagers;
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities; namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities;
public class LivingEntity : Entity public class LivingEntity : Entity
{ {
public Vector2 velocity; public Vector2 velocity;
private InputManager inputManager;
public LivingEntity(Vector2 position) : base(position) public LivingEntity(Vector2 position) : base(position)
{ {
inputManager = new InputManager();
} }
public void TextureLoad(SpriteBatch spriteBatch) #region Server side
/*public override void Update()
{ {
} }*/
#endregion
} }

View file

@ -1,25 +1,27 @@
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Graphics;
using System; using System;
using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player; namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
public class Player : LivingEntity public class Player : LivingEntity
{ {
public Vector2 InputWeaponRotation{ get; set; }
public Vector2 InputPlayerRotation{ get; set;}
public bool IsTryingToShoot{get;set;}
Texture2D texture;
private float speed;
private int health; private int health;
Server server = new Server();
public Player(Vector2 position) : base(position) public Player(Vector2 position) : base(position)
{ {
//InputWeaponRotation = new Vector2(0, 0);
//InputPlayerRotation = new Vector2(0, 0);
} }
public void Update(GameTime gameTime) public void Update(GameTime gameTime)
{ {
// server.AddData();
}
public void TextureLoad(SpriteBatch spriteBatch)
{
} }
} }

View file

@ -4,12 +4,15 @@ using Microsoft.Xna.Framework.Graphics;
using System; using System;
using ZoFo.GameCore.GameManagers; using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.ZoFo_graphics; using ZoFo.GameCore.ZoFo_graphics;
using ZoFo.GameCore;
namespace ZoFo.GameCore.GameObjects; namespace ZoFo.GameCore.GameObjects;
public abstract class GameObject public abstract class GameObject
{ {
public Vector2 position; public Vector2 position;
private Server server;
public Vector2 rotation; //вектор направления объекта public Vector2 rotation; //вектор направления объекта
public abstract GraphicsComponent graphicsComponent { get; } public abstract GraphicsComponent graphicsComponent { get; }
@ -17,6 +20,8 @@ public abstract class GameObject
public GameObject(Vector2 position) public GameObject(Vector2 position)
{ {
this.position = position; this.position = position;
server = new Server();
server.RegisterGameObject(this);
graphicsComponent.LoadContent(); graphicsComponent.LoadContent();
} }

View file

@ -29,7 +29,7 @@ namespace ZoFo.GameCore
//TODO Comment pls //TODO Comment pls
public void OnDataSend(string data) public void OnDataSend(string data)
{ {
List<IUpdateData> updateDatas = JsonSerializer.Deserialize<List<IUpdateData>>(data); List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
for (int i = 0; i < updateDatas.Count; i++) for (int i = 0; i < updateDatas.Count; i++)
{ {
ProcessIUpdateData(updateDatas[i]); ProcessIUpdateData(updateDatas[i]);
@ -39,7 +39,7 @@ namespace ZoFo.GameCore
/// Обработка апдейтсов, которые нам прислал клиент /// Обработка апдейтсов, которые нам прислал клиент
/// </summary> /// </summary>
/// <param name="updateData"></param> /// <param name="updateData"></param>
public void ProcessIUpdateData(IUpdateData updateData) public void ProcessIUpdateData(UpdateData updateData)
{ {
//ТУТ Switch case будет честное слово //ТУТ Switch case будет честное слово
@ -87,8 +87,7 @@ namespace ZoFo.GameCore
networkManager.AddData(gameEnded); networkManager.AddData(gameEnded);
networkManager.CloseConnection(); networkManager.CloseConnection();
} }
#endregion private List<GameObject> gameObjects = new List<GameObject>();
private List<GameObject> gameObjects;
private List<Entity> entities; //entity private List<Entity> entities; //entity
public void Update(GameTime gameTime) public void Update(GameTime gameTime)
{ {
@ -125,4 +124,5 @@ namespace ZoFo.GameCore
} }
} }
} }
#endregion
} }