Only 2 Players Support

This commit is contained in:
AnloGames 2023-08-18 04:07:28 +03:00
parent 424583837a
commit 0681d14f06
4 changed files with 18 additions and 7 deletions

View file

@ -15,6 +15,7 @@ namespace DangerousD.GameCore
protected Vector2 _pos; protected Vector2 _pos;
public Vector2 Pos => _pos; public Vector2 Pos => _pos;
public int id; public int id;
public bool isIdFromHost = false;
public int Width { get; set; } public int Width { get; set; }
public int Height { get; set; } public int Height { get; set; }
public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height); public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height);

View file

@ -12,6 +12,7 @@ using MonogameLibrary.UI.Base;
using DangerousD.GameCore.Managers; using DangerousD.GameCore.Managers;
using DangerousD.GameCore.GameObjects.LivingEntities; using DangerousD.GameCore.GameObjects.LivingEntities;
using DangerousD.GameCore.GameObjects; using DangerousD.GameCore.GameObjects;
using System.Threading.Tasks;
namespace DangerousD.GameCore namespace DangerousD.GameCore
{ {
@ -111,6 +112,8 @@ namespace DangerousD.GameCore
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit(); Exit();
if (GameManager.GetPlayer1 != null)
DebugHUD.Set("Objid: ", GameManager.GetPlayer1.id.ToString());
InputManager.Update(); InputManager.Update();
SoundManager.Update(); SoundManager.Update();
@ -225,8 +228,15 @@ namespace DangerousD.GameCore
case NetworkTaskOperationEnum.CreateEntity: case NetworkTaskOperationEnum.CreateEntity:
break; break;
case NetworkTaskOperationEnum.SendPosition: case NetworkTaskOperationEnum.SendPosition:
if (networkTask.objId != GameManager.GetPlayer1.id)
{
LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId); LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId);
entity.SetPosition(networkTask.position); entity.SetPosition(networkTask.position);
if (multiPlayerStatus == MultiPlayerStatus.Host)
{
NetworkTasks.Add(networkTask);
}
}
break; break;
case NetworkTaskOperationEnum.ChangeState: case NetworkTaskOperationEnum.ChangeState:
break; break;
@ -243,12 +253,15 @@ namespace DangerousD.GameCore
} }
break; break;
case NetworkTaskOperationEnum.GetClientPlayerId: case NetworkTaskOperationEnum.GetClientPlayerId:
if (!GameManager.GetPlayer1.isIdFromHost)
{
GameManager.GetPlayer1.id = networkTask.objId; GameManager.GetPlayer1.id = networkTask.objId;
GameManager.GetPlayer1.isIdFromHost = true;
}
break; break;
case NetworkTaskOperationEnum.AddConnectedPlayer: case NetworkTaskOperationEnum.AddConnectedPlayer:
Player remoteConnectedPlayer = new Player(networkTask.position, true); Player remoteConnectedPlayer = new Player(networkTask.position, true);
remoteConnectedPlayer.id = networkTask.objId; remoteConnectedPlayer.id = networkTask.objId;
GameManager.players.Add(remoteConnectedPlayer);
break; break;
default: default:
break; break;

View file

@ -99,8 +99,6 @@ namespace DangerousD.GameCore
public void Update(GameTime gameTime) public void Update(GameTime gameTime)
{ {
Player p = players.Find(x => x.id == 16);
if (p != null) AppManager.Instance.DebugHUD.Set("NextPlayerVelocity: ", p.velocity.ToString());
if (AppManager.Instance.NetworkTasks.Count > 0) if (AppManager.Instance.NetworkTasks.Count > 0)
{ {
AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList()); AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList());

View file

@ -152,7 +152,6 @@ namespace DangerousD.GameCore.Network
else else
{ {
List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString()); List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString());
//SendMsg(tasks, clientSocket);
GetReceivingMessages(tasks); GetReceivingMessages(tasks);
} }
} }