Implemented changes in new RA. Also minor exception param change.

This commit is contained in:
Harrison Deng 2019-03-13 13:33:05 -05:00
parent 03f1bdee7b
commit f7aa272d76
5 changed files with 190 additions and 145 deletions

Binary file not shown.

View File

@ -4,6 +4,167 @@
<name>RecrownedAthenaeum</name>
</assembly>
<members>
<member name="T:RecrownedAthenaeum.Render.SpriteBatchSettings">
<summary>
The settings the sprite batch should use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.spriteSortMode">
<summary>
Defines sprites sort mode.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.blendState">
<summary>
The blend state to use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.samplerState">
<summary>
Sampler state to use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.depthStencilState">
<summary>
The depth stencil state to use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.rasterizerState">
<summary>
The rasterizer state to use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.effect">
<summary>
The effect to use.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.SpriteBatchSettings.transformMatrix">
<summary>
The transformation matrix to use.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.SpriteBatchSettings.BeginSpriteBatch(Microsoft.Xna.Framework.Graphics.SpriteBatch)">
<summary>
Begins the given sprite batch with the current set of settings.
</summary>
<param name="spriteBatch">Begins the spritebatch with the given settings.</param>
</member>
<member name="T:RecrownedAthenaeum.Render.RectangleRenderer">
<summary>
Renders rectangles using the <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.RectangleRenderer.primitiveBatch">
<summary>
The <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/> used. Needs to be disposed.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.Graphics.GraphicsDevice)">
<summary>
Creates a rectangle renderer with the given <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>.
</summary>
<param name="camera">Camera to use for <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>. Default will use <see cref="T:RecrownedAthenaeum.Configuration"/>.</param>
<param name="graphicsDevice">Graphics device to use. Default will use <see cref="T:RecrownedAthenaeum.Configuration"/>.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Dispose">
<summary>
Disposes the rectangle renderer.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Dispose(System.Boolean)">
<summary>
Overridable for dispose.
</summary>
<param name="disposing">True when its a player calling the dispose.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Begin(System.Boolean)">
<summary>
Begins a batch for rectangles.
</summary>
<param name="filled">Whether or not this batch should be filled rectangles.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.End">
<summary>
Ends the batch.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Draw(System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Xna.Framework.Color,System.Single)">
<summary>
Draws a basic rectangle given bottom left and top right.
</summary>
<param name="x">X coordinate of bottom left.</param>
<param name="y">Y coordinate of bottom left.</param>
<param name="width">Width of rectangle.</param>
<param name="height">Height of rectangle.</param>
<param name="color">Color of all vertices of this rectangle.</param>
<param name="rotation">Rotation of rectangle. Default is 0 radians.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Draw(Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color)">
<summary>
Draws the given rectangle.
</summary>
<param name="rectangle">Uses the x, y and dimensions to draw a rectangle.</param>
<param name="color">The color of the rectangle.</param>
</member>
<member name="T:RecrownedAthenaeum.Render.PrimitiveBatch">
<summary>
A batch used to draw primitive shapes by batching together vertices.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.PrimitiveBatch.primitiveCount">
<summary>
Amount of primitives.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.Graphics.GraphicsDevice,System.Int32)">
<summary>
Creates a batch used to draw primitives.
</summary>
<param name="camera">The current camera being used. Will use default set in <see cref="T:RecrownedAthenaeum.Configuration"/> if left null.</param>
<param name="graphicsDevice">The graphics device used to draw the primitives. Will be using <see cref="T:RecrownedAthenaeum.Configuration"/>'s graphics device from graphics device manager if null. Default is null.</param>
<param name="verticesPerBatch">The amount of vertices every batch can hold before flushing. Default is 450. Should be changed to be the most optimal number if possible to prevent unnecessary resizing. Especially if using strip primitive types.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Begin(Microsoft.Xna.Framework.Graphics.PrimitiveType)">
<summary>
Starts the batch. Batch cannot be started twice.
</summary>
<param name="primitiveType">The type of primitive this batch would be drawing.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.End">
<summary>
Ends the batch. Begin needs to be called before end.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.AddVertex(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Color)">
<summary>
Adds a vertex position for the primitive being drawn. The batch needs to have beens started before this.
</summary>
<param name="vertex">The vector that represents the vertex.</param>
<param name="color">The color of that vertex.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Flush">
<summary>
Flushes the batch. Automatically called if required if using <see cref="F:Microsoft.Xna.Framework.Graphics.PrimitiveType.LineList"/> or <see cref="F:Microsoft.Xna.Framework.Graphics.PrimitiveType.TriangleList"/>. Otherwise, manual flushing is required.
<see cref="F:RecrownedAthenaeum.Render.PrimitiveBatch.primitiveCount"/> is used if not zero. Is reset to zero every flush.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Dispose">
<summary>
Disposes this.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Dispose(System.Boolean)">
<summary>
Overridable dispose.
</summary>
<param name="disposing">True for when user called for this to be disposed. False otherwise.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Finalize">
<summary>
Destructor.
</summary>
</member>
<member name="T:RecrownedAthenaeum.Camera.Camera3D">
<summary>
A generic 3D camera.
@ -71,6 +232,11 @@
A virtual 2D camera that wraps the normal <see cref="T:RecrownedAthenaeum.Camera.Camera3D"/>. Default projection is orthographic.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Camera.Camera2D.zoom">
<summary>
The zoom of the camera.
</summary>
</member>
<member name="P:RecrownedAthenaeum.Camera.Camera2D.Position">
<summary>
The 2D position.
@ -216,7 +382,7 @@
2D camera to be used by default.
</summary>
</member>
<member name="P:RecrownedAthenaeum.Configuration.BeginBatchFunction">
<member name="P:RecrownedAthenaeum.Configuration.spriteBatchSettings">
<summary>
The begin sprite batch to use for custom begins and consistency.
</summary>
@ -257,17 +423,19 @@
<param name="top">Top side.</param>
<param name="textureBounds">The dimensions and potentially the coordinates of the rectangle on an atlas. If left to default of null, will only be set to texture bounds.</param>
</member>
<member name="M:RecrownedAthenaeum.SpecialTypes.NinePatch.Draw(Microsoft.Xna.Framework.Graphics.SpriteBatch,Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color)">
<member name="M:RecrownedAthenaeum.SpecialTypes.NinePatch.Draw(Microsoft.Xna.Framework.Graphics.SpriteBatch,Microsoft.Xna.Framework.Color,Microsoft.Xna.Framework.Rectangle,System.Nullable{RecrownedAthenaeum.Render.SpriteBatchSettings})">
<summary>
Draws the ninepatch.
</summary>
<param name="spriteBatch">Batch to use.</param>
<param name="destination">Where to the patch.</param>
<param name="color">The color of the patch.</param>
<param name="spriteBatchSettings">The sprite batch settings to use to begin the batch in after drawing the ninepatch.</param>
</member>
<member name="M:RecrownedAthenaeum.SpecialTypes.NinePatch.Draw(Microsoft.Xna.Framework.Graphics.SpriteBatch,Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color,System.Single,Microsoft.Xna.Framework.Vector2)">
<summary>
Draw with more options.
Uses the default <see cref="T:RecrownedAthenaeum.Configuration"/> for the spritebatch settings.
</summary>
<param name="spriteBatch">Spritebatch to use.</param>
<param name="destination">The destination to draw the patch.</param>
@ -752,121 +920,6 @@
<param name="atlasTexture">The texture containing the atlas.</param>
<returns>An array of regions.</returns>
</member>
<member name="T:RecrownedAthenaeum.Render.RectangleRenderer">
<summary>
Renders rectangles using the <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.RectangleRenderer.primitiveBatch">
<summary>
The <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/> used. Needs to be disposed.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.Graphics.GraphicsDevice)">
<summary>
Creates a rectangle renderer with the given <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>.
</summary>
<param name="camera">Camera to use for <see cref="T:RecrownedAthenaeum.Render.PrimitiveBatch"/>. Default will use <see cref="T:RecrownedAthenaeum.Configuration"/>.</param>
<param name="graphicsDevice">Graphics device to use. Default will use <see cref="T:RecrownedAthenaeum.Configuration"/>.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Dispose">
<summary>
Disposes the rectangle renderer.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Dispose(System.Boolean)">
<summary>
Overridable for dispose.
</summary>
<param name="disposing">True when its a player calling the dispose.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Begin(System.Boolean)">
<summary>
Begins a batch for rectangles.
</summary>
<param name="filled">Whether or not this batch should be filled rectangles.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.End">
<summary>
Ends the batch.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Draw(System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Xna.Framework.Color,System.Single)">
<summary>
Draws a basic rectangle given bottom left and top right.
</summary>
<param name="x">X coordinate of bottom left.</param>
<param name="y">Y coordinate of bottom left.</param>
<param name="width">Width of rectangle.</param>
<param name="height">Height of rectangle.</param>
<param name="color">Color of all vertices of this rectangle.</param>
<param name="rotation">Rotation of rectangle. Default is 0 radians.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.RectangleRenderer.Draw(Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color)">
<summary>
Draws the given rectangle.
</summary>
<param name="rectangle">Uses the x, y and dimensions to draw a rectangle.</param>
<param name="color">The color of the rectangle.</param>
</member>
<member name="T:RecrownedAthenaeum.Render.PrimitiveBatch">
<summary>
A batch used to draw primitive shapes by batching together vertices.
</summary>
</member>
<member name="F:RecrownedAthenaeum.Render.PrimitiveBatch.primitiveCount">
<summary>
Amount of primitives.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.Graphics.GraphicsDevice,System.Int32)">
<summary>
Creates a batch used to draw primitives.
</summary>
<param name="camera">The current camera being used. Will use default set in <see cref="T:RecrownedAthenaeum.Configuration"/> if left null.</param>
<param name="graphicsDevice">The graphics device used to draw the primitives. Will be using <see cref="T:RecrownedAthenaeum.Configuration"/>'s graphics device from graphics device manager if null. Default is null.</param>
<param name="verticesPerBatch">The amount of vertices every batch can hold before flushing. Default is 450. Should be changed to be the most optimal number if possible to prevent unnecessary resizing. Especially if using strip primitive types.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Begin(Microsoft.Xna.Framework.Graphics.PrimitiveType)">
<summary>
Starts the batch. Batch cannot be started twice.
</summary>
<param name="primitiveType">The type of primitive this batch would be drawing.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.End">
<summary>
Ends the batch. Begin needs to be called before end.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.AddVertex(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Color)">
<summary>
Adds a vertex position for the primitive being drawn. The batch needs to have beens started before this.
</summary>
<param name="vertex">The vector that represents the vertex.</param>
<param name="color">The color of that vertex.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Flush">
<summary>
Flushes the batch. Automatically called if required if using <see cref="F:Microsoft.Xna.Framework.Graphics.PrimitiveType.LineList"/> or <see cref="F:Microsoft.Xna.Framework.Graphics.PrimitiveType.TriangleList"/>. Otherwise, manual flushing is required.
<see cref="F:RecrownedAthenaeum.Render.PrimitiveBatch.primitiveCount"/> is used if not zero. Is reset to zero every flush.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Dispose">
<summary>
Disposes this.
</summary>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Dispose(System.Boolean)">
<summary>
Overridable dispose.
</summary>
<param name="disposing">True for when user called for this to be disposed. False otherwise.</param>
</member>
<member name="M:RecrownedAthenaeum.Render.PrimitiveBatch.Finalize">
<summary>
Destructor.
</summary>
</member>
<member name="T:RecrownedAthenaeum.ScreenSystem.ITransition">
<summary>
Contracts a transition that the <see cref="T:RecrownedAthenaeum.ScreenSystem.ScreenManager"/> can use.
@ -1084,12 +1137,6 @@
</summary>
<param name="screen">The screen to show after the loading screen.</param>
</member>
<member name="T:RecrownedAthenaeum.ScreenSystem.BeginBatch">
<summary>
Custom spritebatch begin call.
</summary>
<param name="spriteBatch"></param>
</member>
<member name="T:RecrownedAthenaeum.ScreenSystem.ScreenManager">
<summary>
A manager for screens. Helps with transitions and updating screens as well as resizes.
@ -1100,9 +1147,9 @@
Called when the first loading screen is done, and needs to show the landing screen.
</summary>
</member>
<member name="F:RecrownedAthenaeum.ScreenSystem.ScreenManager.beginBatchFunc">
<member name="F:RecrownedAthenaeum.ScreenSystem.ScreenManager.batchSettings">
<summary>
The function to call that begins the batch.
The settings this manager will use to begin a sprite batch.
</summary>
</member>
<member name="P:RecrownedAthenaeum.ScreenSystem.ScreenManager.Screen">
@ -1110,13 +1157,13 @@
Currently displayed screen.
</summary>
</member>
<member name="M:RecrownedAthenaeum.ScreenSystem.ScreenManager.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.GraphicsDeviceManager,RecrownedAthenaeum.ScreenSystem.BeginBatch)">
<member name="M:RecrownedAthenaeum.ScreenSystem.ScreenManager.#ctor(RecrownedAthenaeum.Camera.Camera2D,Microsoft.Xna.Framework.GraphicsDeviceManager,System.Nullable{RecrownedAthenaeum.Render.SpriteBatchSettings})">
<summary>
Creates a screen manager that helps manage multiple screens and their transitions.
</summary>
<param name="camera">The camera to be used to perform the correct translations and transformations. Will use default set in <see cref="T:RecrownedAthenaeum.Configuration"/> if left null.</param>
<param name="graphicsDeviceManager">The graphics device manager to be used. Will use default set in <see cref="T:RecrownedAthenaeum.Configuration"/> if left null.</param>
<param name="beginBatchFunction">The function to call to begin a batch to be used generally. Will use the built-in one in screen manager if not provided.</param>
<param name="spriteBatchSettings">The settings to begin spritebatch with. Will use the built-in one in screen manager if not provided.</param>
</member>
<member name="M:RecrownedAthenaeum.ScreenSystem.ScreenManager.UpdateCurrentScreen(Microsoft.Xna.Framework.GameTime,System.Boolean)">
<summary>
@ -1549,12 +1596,12 @@
Origin of this module.
</summary>
</member>
<member name="F:RecrownedAthenaeum.UI.Modular.UIModule.Parent">
<member name="F:RecrownedAthenaeum.UI.Modular.UIModule.parent">
<summary>
The parent of this module. May be null.
</summary>
</member>
<member name="F:RecrownedAthenaeum.UI.Modular.UIModule.Name">
<member name="F:RecrownedAthenaeum.UI.Modular.UIModule.name">
<summary>
Name of this module. For organizational/referencial purposes mostly.
</summary>
@ -1607,18 +1654,16 @@
Sets the origin to be the center of the bounds.
</summary>
</member>
<member name="M:RecrownedAthenaeum.UI.Modular.UIModule.CenterHorizontally(Microsoft.Xna.Framework.Rectangle)">
<member name="M:RecrownedAthenaeum.UI.Modular.UIModule.CenterHorizontally">
<summary>
Centers this module's origin on the horizontal axis relative to the given rectangle.
Centers this module's origin on the horizontal axis relative to the parent <see cref="T:RecrownedAthenaeum.UI.Modular.UIModuleGroup"/>.
</summary>
<param name="rectangle">The rectangle to center it in.</param>
<returns>True if possible and false if not.</returns>
</member>
<member name="M:RecrownedAthenaeum.UI.Modular.UIModule.CenterVertically(Microsoft.Xna.Framework.Rectangle)">
<member name="M:RecrownedAthenaeum.UI.Modular.UIModule.CenterVertically">
<summary>
Center's this module's origin on the vertical axis relative to the given rectangle.
Centers this module's origin on the vertical axis relative to the parent <see cref="T:RecrownedAthenaeum.UI.Modular.UIModuleGroup"/>.
</summary>
<param name="rectangle">The rectangle to center in.</param>
<returns>True if possible.</returns>
</member>
<member name="T:RecrownedAthenaeum.UI.Modular.UIModuleGroup">
@ -1631,13 +1676,13 @@
Camera used by the module for cropping.
</summary>
</member>
<member name="M:RecrownedAthenaeum.UI.Modular.UIModuleGroup.#ctor(System.Boolean,RecrownedAthenaeum.Camera.Camera2D,RecrownedAthenaeum.ScreenSystem.BeginBatch)">
<member name="M:RecrownedAthenaeum.UI.Modular.UIModuleGroup.#ctor(System.Boolean,RecrownedAthenaeum.Camera.Camera2D,System.Nullable{RecrownedAthenaeum.Render.SpriteBatchSettings})">
<summary>
Creates a module group.
</summary>
<param name="crop">Whether or not to crop out of bounds. Default is false.</param>
<param name="camera">What camera to use for cropping. Default is null and will use <see cref="T:RecrownedAthenaeum.Configuration"/>'s camera if crop is enabled.</param>
<param name="beginBatchFunction">The function to be called that begins the batch.</param>
<param name="spriteBatchSettings">The settings to be used that begins the batch.</param>
</member>
<member name="M:RecrownedAthenaeum.UI.Modular.UIModuleGroup.Draw(Microsoft.Xna.Framework.Graphics.SpriteBatch)">
<summary>

View File

@ -33,7 +33,7 @@ namespace RhythmBullet.Audio.Visualizer
public override void Update(GameTime gameTime)
{
if (disposed) throw new ObjectDisposedException(this.Name);
if (disposed) throw new ObjectDisposedException(GetType().Name);
UpdateBars((float)gameTime.ElapsedGameTime.TotalSeconds);
AverageBars();
base.Update(gameTime);
@ -41,7 +41,7 @@ namespace RhythmBullet.Audio.Visualizer
public override void Draw(SpriteBatch batch)
{
if (disposed) throw new ObjectDisposedException(this.Name);
if (disposed) throw new ObjectDisposedException(GetType().Name);
rectangleRenderer.Begin(true);
for (int i = 0; i < BAR_COUNT; i++)
{
@ -103,7 +103,7 @@ namespace RhythmBullet.Audio.Visualizer
public void Dispose()
{
if (disposed) throw new ObjectDisposedException(this.Name);
if (disposed) throw new ObjectDisposedException(GetType().Name);
Dispose(true);
}

View File

@ -101,7 +101,7 @@ namespace RhythmBullet
Camera = RecrownedAthenaeum.Configuration.Camera2D;
screenManager = new ScreenManager();
RecrownedAthenaeum.Configuration.BeginBatchFunction = screenManager.beginBatchFunc;
RecrownedAthenaeum.Configuration.spriteBatchSettings = screenManager.batchSettings;
screenManager.ShowFirstScreenEvent += ShowFirstScreen;
QueueContent();
screenManager.Screen = new LoadingScreen(this, Content.Load<Texture2D>("RhythmBullet"), 0.7f);

View File

@ -40,20 +40,20 @@ namespace RhythmBullet.Screens.MainMenu
base.ApplySize(width, height);
title.Scale = (width - 40) / title.texture.Width;
title.CenterOrigin();
title.CenterHorizontally(Boundaries);
title.CenterVertically(Boundaries);
title.CenterHorizontally();
title.CenterVertically();
playButton.situation.Width = (int)(0.3f * title.Boundaries.Width);
playButton.situation.Height = (int)(0.05f * title.Boundaries.Width);
playButton.CenterOrigin();
playButton.CenterHorizontally(Boundaries);
playButton.CenterHorizontally();
playButton.situation.Y = (int)playButton.origin.Y + title.Boundaries.Y + title.Boundaries.Height + 60;
quitButton.situation.Width = (int)(0.3f * title.Boundaries.Width);
quitButton.situation.Height = (int)(0.05f * title.Boundaries.Width);
quitButton.CenterOrigin();
quitButton.CenterHorizontally(Boundaries);
quitButton.CenterHorizontally();
quitButton.situation.Y = (int)quitButton.origin.Y + playButton.Boundaries.Y + playButton.Boundaries.Height + 15;
}