Only 2 Players Support
This commit is contained in:
parent
424583837a
commit
0681d14f06
4 changed files with 18 additions and 7 deletions
|
@ -15,6 +15,7 @@ namespace DangerousD.GameCore
|
|||
protected Vector2 _pos;
|
||||
public Vector2 Pos => _pos;
|
||||
public int id;
|
||||
public bool isIdFromHost = false;
|
||||
public int Width { get; set; }
|
||||
public int Height { get; set; }
|
||||
public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height);
|
||||
|
|
|
@ -12,6 +12,7 @@ using MonogameLibrary.UI.Base;
|
|||
using DangerousD.GameCore.Managers;
|
||||
using DangerousD.GameCore.GameObjects.LivingEntities;
|
||||
using DangerousD.GameCore.GameObjects;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DangerousD.GameCore
|
||||
{
|
||||
|
@ -111,6 +112,8 @@ namespace DangerousD.GameCore
|
|||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
||||
Exit();
|
||||
|
||||
if (GameManager.GetPlayer1 != null)
|
||||
DebugHUD.Set("Objid: ", GameManager.GetPlayer1.id.ToString());
|
||||
InputManager.Update();
|
||||
SoundManager.Update();
|
||||
|
||||
|
@ -225,8 +228,15 @@ namespace DangerousD.GameCore
|
|||
case NetworkTaskOperationEnum.CreateEntity:
|
||||
break;
|
||||
case NetworkTaskOperationEnum.SendPosition:
|
||||
if (networkTask.objId != GameManager.GetPlayer1.id)
|
||||
{
|
||||
LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId);
|
||||
entity.SetPosition(networkTask.position);
|
||||
if (multiPlayerStatus == MultiPlayerStatus.Host)
|
||||
{
|
||||
NetworkTasks.Add(networkTask);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case NetworkTaskOperationEnum.ChangeState:
|
||||
break;
|
||||
|
@ -243,12 +253,15 @@ namespace DangerousD.GameCore
|
|||
}
|
||||
break;
|
||||
case NetworkTaskOperationEnum.GetClientPlayerId:
|
||||
if (!GameManager.GetPlayer1.isIdFromHost)
|
||||
{
|
||||
GameManager.GetPlayer1.id = networkTask.objId;
|
||||
GameManager.GetPlayer1.isIdFromHost = true;
|
||||
}
|
||||
break;
|
||||
case NetworkTaskOperationEnum.AddConnectedPlayer:
|
||||
Player remoteConnectedPlayer = new Player(networkTask.position, true);
|
||||
remoteConnectedPlayer.id = networkTask.objId;
|
||||
GameManager.players.Add(remoteConnectedPlayer);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -99,8 +99,6 @@ namespace DangerousD.GameCore
|
|||
|
||||
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)
|
||||
{
|
||||
AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList());
|
||||
|
|
|
@ -152,7 +152,6 @@ namespace DangerousD.GameCore.Network
|
|||
else
|
||||
{
|
||||
List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString());
|
||||
//SendMsg(tasks, clientSocket);
|
||||
GetReceivingMessages(tasks);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue