Added simple pause mechanism.

This commit is contained in:
Harrison Deng 2020-07-12 12:26:36 -05:00
parent 00b2670cfc
commit c01f5d511d
3 changed files with 37 additions and 5 deletions

View File

@ -51,13 +51,16 @@ namespace SkinnerBox.States
private List<DownloadEntity> activeDownloads = new List<DownloadEntity>(); private List<DownloadEntity> activeDownloads = new List<DownloadEntity>();
private DownloadSpawnInfo downloadSpawnInfo; private DownloadSpawnInfo downloadSpawnInfo;
private const float downloadSafeMargin = 1.5f; private const float downloadSafeMargin = 1.5f;
#endregion
//DDOS entities. //DDOS entities.
private ObjectPool<DDOSEntity> ddosPool; private ObjectPool<DDOSEntity> ddosPool;
private List<DDOSEntity> activeDDOS = new List<DDOSEntity>(); private List<DDOSEntity> activeDDOS = new List<DDOSEntity>();
private DDOSSPawnInfo dDOSSpawnInfo; private DDOSSPawnInfo dDOSSpawnInfo;
#endregion
#region PauseManagement
bool paused = false;
#endregion
#region PlayerStats #region PlayerStats
private int speedBoost = 0; private int speedBoost = 0;
private int bandwithBoost = 0; private int bandwithBoost = 0;
@ -113,6 +116,8 @@ namespace SkinnerBox.States
this.font.PixelHeight = 32; this.font.PixelHeight = 32;
font.PrepareCharacterGroup("Score:0123456789Uptim.%".ToCharArray()); font.PrepareCharacterGroup("Score:0123456789Uptim.%".ToCharArray());
this.font.PixelHeight = 64;
font.PrepareCharacterGroup("Paused...".ToCharArray());
activePackets.Clear(); activePackets.Clear();
activeWarnings.Clear(); activeWarnings.Clear();
@ -162,11 +167,21 @@ namespace SkinnerBox.States
CalculateScaleFactors(vw, vh); CalculateScaleFactors(vw, vh);
WindowContextsManager.CurrentWindowContext.resizeEvent += WindowResize; WindowContextsManager.CurrentWindowContext.resizeEvent += WindowResize;
WindowContextsManager.CurrentWindowContext.focusGainedEvent += Focused;
WindowContextsManager.CurrentWindowContext.focusLostEvent += UnFocused;
} }
public void Render(double delta) public void Render(double delta)
{ {
renderer.Begin(Matrix4x4.Identity, delta); renderer.Begin(Matrix4x4.Identity, delta);
#region PauseHandling
if (paused) {
font.PixelHeight = 64;
font.WriteLine(renderer, Game.WIDTH_UNITS / 2f - 1f, Game.HEIGHT_UNITS / 2f, "Paused.", Color.Purple);
renderer.End();
return;
}
#endregion
#region WarningRender #region WarningRender
foreach (WarningEntity warn in activeWarnings) foreach (WarningEntity warn in activeWarnings)
{ {
@ -193,6 +208,7 @@ namespace SkinnerBox.States
} }
#endregion #endregion
#region StatusRender #region StatusRender
font.PixelHeight = 32;
for (int i = 0; i < bandwithBoost + speedBoost; i++) for (int i = 0; i < bandwithBoost + speedBoost; i++)
{ {
if (i < bandwithBoost) { if (i < bandwithBoost) {
@ -218,6 +234,10 @@ namespace SkinnerBox.States
public void Update(double timeStep) public void Update(double timeStep)
{ {
if (paused) {
return;
}
timeElapsed.Value = (float)timeStep + timeElapsed.DesignatedValue; timeElapsed.Value = (float)timeStep + timeElapsed.DesignatedValue;
score += (float) timeStep * 0.5f; score += (float) timeStep * 0.5f;
#region ServerUpdate #region ServerUpdate
@ -483,5 +503,13 @@ namespace SkinnerBox.States
this.cursorWidthScale = Game.WIDTH_UNITS * (1f / width); this.cursorWidthScale = Game.WIDTH_UNITS * (1f / width);
this.cursorHeightScale = Game.HEIGHT_UNITS * (1f / height); this.cursorHeightScale = Game.HEIGHT_UNITS * (1f / height);
} }
public void Focused() {
this.paused = false;
}
public void UnFocused() {
this.paused = true;
}
} }
} }

View File

@ -24,6 +24,7 @@ namespace SkinnerBox.States
MeshBatchRenderer renderer; MeshBatchRenderer renderer;
BitmapFont titleFont, boldFont; BitmapFont titleFont, boldFont;
RectangleMesh serverUnit; RectangleMesh serverUnit;
private BitmapFont genericFont;
public bool Activate() public bool Activate()
{ {
@ -45,6 +46,9 @@ namespace SkinnerBox.States
public void Deinitialize() public void Deinitialize()
{ {
titleFont.Dispose();
boldFont.Dispose();
genericFont.Dispose();
this.renderer.Dispose(); this.renderer.Dispose();
this.assets.UnloadAll(); this.assets.UnloadAll();
} }
@ -71,7 +75,7 @@ namespace SkinnerBox.States
this.titleFont = new BitmapFont("resources/BigShouldersDisplay-Regular.ttf", textureSizes: 512); this.titleFont = new BitmapFont("resources/BigShouldersDisplay-Regular.ttf", textureSizes: 512);
this.titleFont.PixelsPerUnitHeight = 80; this.titleFont.PixelsPerUnitHeight = 80;
this.titleFont.PixelsPerUnitWidth = 80; this.titleFont.PixelsPerUnitWidth = 80;
BitmapFont genericFont = new BitmapFont("resources/BigShouldersDisplay-Light.ttf"); genericFont = new BitmapFont("resources/BigShouldersDisplay-Light.ttf");
genericFont.PixelsPerUnitHeight = 80; genericFont.PixelsPerUnitHeight = 80;
genericFont.PixelsPerUnitWidth = 80; genericFont.PixelsPerUnitWidth = 80;
//Add additional states //Add additional states

View File

@ -97,7 +97,7 @@ namespace SkinnerBox.States
public void Deinitialize() public void Deinitialize()
{ {
font.Dispose();
} }
public string getName() public string getName()