Functioning state before changing to using render targets
This commit is contained in:
parent
9da8233eda
commit
44b2c74ff5
@ -688,3 +688,15 @@
|
|||||||
/processorParam:TextureFormat=Color
|
/processorParam:TextureFormat=Color
|
||||||
/build:RhythmBullet.png
|
/build:RhythmBullet.png
|
||||||
|
|
||||||
|
#begin loading_ring.png
|
||||||
|
/importer:TextureImporter
|
||||||
|
/processor:TextureProcessor
|
||||||
|
/processorParam:ColorKeyColor=255,0,255,255
|
||||||
|
/processorParam:ColorKeyEnabled=True
|
||||||
|
/processorParam:GenerateMipmaps=False
|
||||||
|
/processorParam:PremultiplyAlpha=True
|
||||||
|
/processorParam:ResizeToPowerOfTwo=False
|
||||||
|
/processorParam:MakeSquare=False
|
||||||
|
/processorParam:TextureFormat=Color
|
||||||
|
/build:loading_ring.png
|
||||||
|
|
||||||
|
BIN
RhythmBullet/Content/loading_ring.png
Normal file
BIN
RhythmBullet/Content/loading_ring.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
@ -65,7 +65,10 @@ namespace RhythmBullet
|
|||||||
previousScreen = value;
|
previousScreen = value;
|
||||||
Screen.Hide();
|
Screen.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
currentScreen = value;
|
currentScreen = value;
|
||||||
|
currentScreen.ScreenSize.Width = graphics.PreferredBackBufferWidth;
|
||||||
|
currentScreen.ScreenSize.Height = graphics.PreferredBackBufferHeight;
|
||||||
Screen.Show();
|
Screen.Show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -94,7 +97,7 @@ namespace RhythmBullet
|
|||||||
// Create a new SpriteBatch, which can be used to draw textures.
|
// Create a new SpriteBatch, which can be used to draw textures.
|
||||||
spriteBatch = new SpriteBatch(GraphicsDevice);
|
spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
QueueContent();
|
QueueContent();
|
||||||
Screen = new LoadingScreen(Content.Load<Texture2D>("RhythmBullet"), 0.5f, new Rectangle(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight));
|
Screen = new LoadingScreen(Content.Load<Texture2D>("RhythmBullet"), 0.7f, new Rectangle(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -130,7 +133,7 @@ namespace RhythmBullet
|
|||||||
case ScreenState.ExitTransition:
|
case ScreenState.ExitTransition:
|
||||||
if (Screen.ExitingTransition(gameTime.ElapsedGameTime.TotalSeconds, Assets.Done, ref BackgroundColor))
|
if (Screen.ExitingTransition(gameTime.ElapsedGameTime.TotalSeconds, Assets.Done, ref BackgroundColor))
|
||||||
{
|
{
|
||||||
Screen = previousScreen != null ? previousScreen : new MainScreen(graphics.GraphicsDevice, BackgroundColor);
|
Screen = previousScreen != null ? previousScreen : new MainScreen(graphics.GraphicsDevice, BackgroundColor, Assets);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ScreenState.Normal:
|
case ScreenState.Normal:
|
||||||
@ -166,7 +169,7 @@ namespace RhythmBullet
|
|||||||
Assets.UnloadAll();
|
Assets.UnloadAll();
|
||||||
QueueContent();
|
QueueContent();
|
||||||
Screen.AssetLoadStateChange(true);
|
Screen.AssetLoadStateChange(true);
|
||||||
Screen = new LoadingScreen(Content.Load<Texture2D>("loading_ring"), 0.4f, new Rectangle(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight));
|
Screen = new LoadingScreen(Content.Load<Texture2D>("loading_ring"), 0.3f, new Rectangle(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PostResize()
|
private void PostResize()
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using RhythmBullet.Zer01HD.Game.Screens.Transitions;
|
using RhythmBullet.Zer01HD.Game.Screens.Transitions;
|
||||||
using RhythmBullet.Zer01HD.UI;
|
using RhythmBullet.Zer01HD.UI;
|
||||||
|
using RhythmBullet.Zer01HD.Utilities.ContentSystem;
|
||||||
using RhythmBullet.Zer01HD.Utilities.UI;
|
using RhythmBullet.Zer01HD.Utilities.UI;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -13,11 +14,26 @@ namespace RhythmBullet.Zer01HD.Game.Screens
|
|||||||
{
|
{
|
||||||
class MainScreen : Screen
|
class MainScreen : Screen
|
||||||
{
|
{
|
||||||
|
Texture2D background;
|
||||||
FadeInTransition fadeInTransition;
|
FadeInTransition fadeInTransition;
|
||||||
|
|
||||||
public MainScreen(GraphicsDevice graphicsDevice, Color transitionFromColor) : base(true)
|
public MainScreen(GraphicsDevice graphicsDevice, Color transitionFromColor, ContentSystem assets) : base(true)
|
||||||
{
|
{
|
||||||
fadeInTransition = new FadeInTransition(graphicsDevice, transitionFromColor, ScreenSize);
|
fadeInTransition = new FadeInTransition(graphicsDevice, transitionFromColor);
|
||||||
|
background = assets.Get<Texture2D>("backgrounds/mainBG");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Show()
|
||||||
|
{
|
||||||
|
fadeInTransition.Init(ScreenSize);
|
||||||
|
base.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
spriteBatch.Draw(background, ScreenSize, Color.White);
|
||||||
|
fadeInTransition.Draw(spriteBatch);
|
||||||
|
base.Draw(spriteBatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnteringTransition(double delta, bool assetsLoaded, ref Color backgroundColor)
|
public override void EnteringTransition(double delta, bool assetsLoaded, ref Color backgroundColor)
|
||||||
|
@ -3,6 +3,7 @@ using Microsoft.Xna.Framework.Graphics;
|
|||||||
using RhythmBullet.Zer01HD.Utilities.UI;
|
using RhythmBullet.Zer01HD.Utilities.UI;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -11,36 +12,38 @@ namespace RhythmBullet.Zer01HD.Game.Screens.Transitions
|
|||||||
{
|
{
|
||||||
internal class FadeInTransition : IDisposable
|
internal class FadeInTransition : IDisposable
|
||||||
{
|
{
|
||||||
|
private const float RATE = 0.3f;
|
||||||
public readonly Texture2D curtain;
|
public readonly Texture2D curtain;
|
||||||
Rectangle curtainSize;
|
public Rectangle curtainSize;
|
||||||
Color color;
|
private Color color;
|
||||||
private float progR, progG, progB, progA;
|
private float progR, progG, progB, progA;
|
||||||
private float rR, rG, rB, rA;
|
private float rR, rG, rB, rA;
|
||||||
private bool recorded;
|
internal FadeInTransition(GraphicsDevice graphicsDevice, Color startColor)
|
||||||
|
|
||||||
internal FadeInTransition(GraphicsDevice graphicsDevice, Color startColor, Vector2 dimensions)
|
|
||||||
{
|
{
|
||||||
curtain = new Texture2D(graphicsDevice, 1, 1);
|
curtain = new Texture2D(graphicsDevice, 1, 1);
|
||||||
curtain.SetData(new[] { startColor });
|
curtain.SetData(new[] { Color.White });
|
||||||
curtainSize.Width = (int)dimensions.X;
|
|
||||||
curtainSize.Height = (int)dimensions.Y;
|
|
||||||
color = startColor;
|
color = startColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void Init(Rectangle dimensions)
|
||||||
|
{
|
||||||
|
curtainSize = dimensions;
|
||||||
|
rR = (0 - color.R) / RATE;
|
||||||
|
rG = (0 - color.G) / RATE;
|
||||||
|
rB = (0 - color.B) / RATE;
|
||||||
|
rA = (0 - color.A) / RATE;
|
||||||
|
|
||||||
|
progA = color.A;
|
||||||
|
progR = color.R;
|
||||||
|
progG = color.G;
|
||||||
|
progB = color.B;
|
||||||
|
}
|
||||||
|
|
||||||
internal bool Fade(float deltaf)
|
internal bool Fade(float deltaf)
|
||||||
{
|
{
|
||||||
if (progR > 0 || progG > 0 || progB > 0)
|
if (progR > 0 || progG > 0 || progB > 0)
|
||||||
{
|
{
|
||||||
if (!recorded)
|
|
||||||
{
|
|
||||||
rR = (0 - color.R) / 1f;
|
|
||||||
rG = (0 - color.G) / 1f;
|
|
||||||
rB = (0 - color.B) / 1f;
|
|
||||||
rA = (0 - color.A) / 1f;
|
|
||||||
recorded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
progR += rR * deltaf;
|
progR += rR * deltaf;
|
||||||
progR = Math.Max(progR, 0);
|
progR = Math.Max(progR, 0);
|
||||||
progG += rG * deltaf;
|
progG += rG * deltaf;
|
||||||
@ -55,7 +58,7 @@ namespace RhythmBullet.Zer01HD.Game.Screens.Transitions
|
|||||||
color.A = (byte)progA;
|
color.A = (byte)progA;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Draw(SpriteBatch batch)
|
internal void Draw(SpriteBatch batch)
|
||||||
|
13
RhythmBullet/Zer01HD/Utilities/UI/Interactive/BasicButton.cs
Normal file
13
RhythmBullet/Zer01HD/Utilities/UI/Interactive/BasicButton.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace RhythmBullet.Zer01HD.Utilities.UI.Interactive
|
||||||
|
{
|
||||||
|
class BasicButton
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,8 @@ namespace RhythmBullet.Zer01HD.Game
|
|||||||
{
|
{
|
||||||
class LoadingScreen : Screen
|
class LoadingScreen : Screen
|
||||||
{
|
{
|
||||||
|
private const float ENTER_RATE = 2f;
|
||||||
|
private const float EXIT_RATE = 1f;
|
||||||
readonly Texture2D texture;
|
readonly Texture2D texture;
|
||||||
Color color;
|
Color color;
|
||||||
Rectangle textureBounds;
|
Rectangle textureBounds;
|
||||||
@ -53,9 +55,9 @@ namespace RhythmBullet.Zer01HD.Game
|
|||||||
{
|
{
|
||||||
if (!recorded)
|
if (!recorded)
|
||||||
{
|
{
|
||||||
rR = (Color.White.R - BGColor.R) / 2f;
|
rR = (Color.White.R - BGColor.R) / ENTER_RATE;
|
||||||
rG = (Color.White.G - BGColor.G) / 2f;
|
rG = (Color.White.G - BGColor.G) / ENTER_RATE;
|
||||||
rB = (Color.White.B - BGColor.B) / 2f;
|
rB = (Color.White.B - BGColor.B) / ENTER_RATE;
|
||||||
recorded = true;
|
recorded = true;
|
||||||
}
|
}
|
||||||
progR += rR * deltaf;
|
progR += rR * deltaf;
|
||||||
@ -85,7 +87,7 @@ namespace RhythmBullet.Zer01HD.Game
|
|||||||
}
|
}
|
||||||
if (progC > 0)
|
if (progC > 0)
|
||||||
{
|
{
|
||||||
float rate = deltaf * 255 / 1f;
|
float rate = deltaf * 255 / EXIT_RATE;
|
||||||
progC -= rate;
|
progC -= rate;
|
||||||
progC = Math.Max(progC, 0);
|
progC = Math.Max(progC, 0);
|
||||||
color.R = (byte)progC;
|
color.R = (byte)progC;
|
||||||
|
@ -12,10 +12,7 @@ namespace RhythmBullet.Zer01HD.Utilities.UI
|
|||||||
|
|
||||||
public class Screen
|
public class Screen
|
||||||
{
|
{
|
||||||
public virtual Vector2 ScreenSize
|
public Rectangle ScreenSize;
|
||||||
{
|
|
||||||
get; set;
|
|
||||||
}
|
|
||||||
|
|
||||||
ScreenState state;
|
ScreenState state;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user