mirror of
https://github.com/TheRavenwoodArts/LunaLightXMG.git
synced 2026-07-30 23:35:02 -07:00
Merge branch 'main' into Level-Handling
This commit is contained in:
+8
-11
@@ -12,7 +12,7 @@ namespace LunaLightXMG
|
|||||||
private float rotation;
|
private float rotation;
|
||||||
private Vector2 position;
|
private Vector2 position;
|
||||||
private Rectangle levelBounds;
|
private Rectangle levelBounds;
|
||||||
private readonly float camSpeed = 0.1f;
|
private readonly float camSpeed = 5.0f;
|
||||||
|
|
||||||
// Screen Shake
|
// Screen Shake
|
||||||
private float shakeTimeRemaining = 0f;
|
private float shakeTimeRemaining = 0f;
|
||||||
@@ -64,16 +64,13 @@ namespace LunaLightXMG
|
|||||||
levelBounds = bounds;
|
levelBounds = bounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Follow(Vector2 targetPostion)
|
public void Follow(GameTime gameTime, Vector2 targetPostion)
|
||||||
{
|
{
|
||||||
position += (targetPostion - position) * camSpeed;
|
float smoothSpeed = camSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
|
||||||
if (Math.Abs(position.X - targetPostion.X) < 0.1f)
|
position = Vector2.Lerp(position, targetPostion, smoothSpeed);
|
||||||
|
if (Vector2.Distance(position, targetPostion) < 1.0f)
|
||||||
{
|
{
|
||||||
position.X = targetPostion.X;
|
position = targetPostion;
|
||||||
}
|
|
||||||
if (Math.Abs(position.Y - targetPostion.Y) < 0.1f)
|
|
||||||
{
|
|
||||||
position.Y = targetPostion.Y;
|
|
||||||
}
|
}
|
||||||
ClampToBounds();
|
ClampToBounds();
|
||||||
}
|
}
|
||||||
@@ -91,8 +88,8 @@ namespace LunaLightXMG
|
|||||||
|
|
||||||
if (shakeTimeRemaining > 0)
|
if (shakeTimeRemaining > 0)
|
||||||
{
|
{
|
||||||
float shakeX = util.ChooseFromRange(-shakeMagnitudeCurrent, shakeMagnitudeCurrent);
|
float shakeX = util.RandomFromRange(-shakeMagnitudeCurrent, shakeMagnitudeCurrent);
|
||||||
float shakeY = util.ChooseFromRange(-shakeMagnitudeCurrent, shakeMagnitudeCurrent);
|
float shakeY = util.RandomFromRange(-shakeMagnitudeCurrent, shakeMagnitudeCurrent);
|
||||||
position.X += shakeX;
|
position.X += shakeX;
|
||||||
position.Y += shakeY;
|
position.Y += shakeY;
|
||||||
shakeTimeRemaining -= (float)gameTime.ElapsedGameTime.TotalSeconds;
|
shakeTimeRemaining -= (float)gameTime.ElapsedGameTime.TotalSeconds;
|
||||||
|
|||||||
+4
-3
@@ -116,7 +116,7 @@ namespace LunaLightXMG
|
|||||||
debugFont = Content.Load<SpriteFont>("fonts/debugFont");
|
debugFont = Content.Load<SpriteFont>("fonts/debugFont");
|
||||||
debugGrid = Content.Load<Texture2D>("debugGrid");
|
debugGrid = Content.Load<Texture2D>("debugGrid");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update(GameTime gameTime)
|
protected override void Update(GameTime gameTime)
|
||||||
{
|
{
|
||||||
// Temporary quit game - eventually handle in a pause menu class
|
// Temporary quit game - eventually handle in a pause menu class
|
||||||
@@ -136,7 +136,7 @@ namespace LunaLightXMG
|
|||||||
// test render handler zoom
|
// test render handler zoom
|
||||||
renderHandler.UpdateZoom();
|
renderHandler.UpdateZoom();
|
||||||
// Update camera position
|
// Update camera position
|
||||||
camera2D.Follow(player.position);
|
camera2D.Follow(gameTime, player.position);
|
||||||
camera2D.UpdateScreenShake(gameTime);
|
camera2D.UpdateScreenShake(gameTime);
|
||||||
// camera testing
|
// camera testing
|
||||||
TestCameraWhilePlaying();
|
TestCameraWhilePlaying();
|
||||||
@@ -182,7 +182,7 @@ namespace LunaLightXMG
|
|||||||
for (int i = 0; i < numberOfEnemies; i++)
|
for (int i = 0; i < numberOfEnemies; i++)
|
||||||
{
|
{
|
||||||
Vector2 spawnPosition = new Vector2(16 + i * 3, -16);
|
Vector2 spawnPosition = new Vector2(16 + i * 3, -16);
|
||||||
Enemy enemy = new(spawnPosition, util.ChooseFromRange(1,3));
|
Enemy enemy = new(spawnPosition, util.RandomFromRange(1,3));
|
||||||
enemy.LoadContent(Content);
|
enemy.LoadContent(Content);
|
||||||
enemies.Add(enemy);
|
enemies.Add(enemy);
|
||||||
}
|
}
|
||||||
@@ -234,6 +234,7 @@ namespace LunaLightXMG
|
|||||||
spriteBatch.DrawString(debugFont, $"Render Target Zoom Control - Zoom in: U, Zoom normal: I, Zoom out: O", new Vector2(10, 210), Color.White);
|
spriteBatch.DrawString(debugFont, $"Render Target Zoom Control - Zoom in: U, Zoom normal: I, Zoom out: O", new Vector2(10, 210), Color.White);
|
||||||
spriteBatch.DrawString(debugFont, $"Press P to test screen shake.", new Vector2(10, 230), Color.White);
|
spriteBatch.DrawString(debugFont, $"Press P to test screen shake.", new Vector2(10, 230), Color.White);
|
||||||
spriteBatch.DrawString(debugFont, $"Press M to toggle game music.", new Vector2(10, 250), Color.White);
|
spriteBatch.DrawString(debugFont, $"Press M to toggle game music.", new Vector2(10, 250), Color.White);
|
||||||
|
spriteBatch.DrawString(debugFont, $"Press R to reset level.", new Vector2(10, 270), Color.White);
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -7,9 +7,9 @@ namespace LunaLightXMG
|
|||||||
public class RenderHandler
|
public class RenderHandler
|
||||||
{
|
{
|
||||||
// fields
|
// fields
|
||||||
private GraphicsDevice graphicsDevice;
|
private readonly GraphicsDevice graphicsDevice;
|
||||||
private SpriteBatch spriteBatch;
|
private readonly SpriteBatch spriteBatch;
|
||||||
private RenderTarget2D renderTarget;
|
private readonly RenderTarget2D renderTarget;
|
||||||
private Rectangle renderDestination;
|
private Rectangle renderDestination;
|
||||||
|
|
||||||
private readonly float retroWidth;
|
private readonly float retroWidth;
|
||||||
@@ -54,7 +54,7 @@ namespace LunaLightXMG
|
|||||||
{
|
{
|
||||||
// interpolate to target
|
// interpolate to target
|
||||||
zoomLevel = MathHelper.Lerp(zoomLevel, zoomTarget, zoomSpeed);
|
zoomLevel = MathHelper.Lerp(zoomLevel, zoomTarget, zoomSpeed);
|
||||||
// snap to target when we're close enough
|
// snap to target when we're close enough
|
||||||
if (Math.Abs(zoomLevel - zoomTarget) < 0.001f)
|
if (Math.Abs(zoomLevel - zoomTarget) < 0.001f)
|
||||||
{
|
{
|
||||||
zoomLevel = zoomTarget;
|
zoomLevel = zoomTarget;
|
||||||
|
|||||||
+2
-2
@@ -4,14 +4,14 @@ namespace LunaLightXMG
|
|||||||
{
|
{
|
||||||
public class Utilities
|
public class Utilities
|
||||||
{
|
{
|
||||||
private Random random;
|
private readonly Random random;
|
||||||
|
|
||||||
public Utilities(int seed = 42)
|
public Utilities(int seed = 42)
|
||||||
{
|
{
|
||||||
random = new Random(seed);
|
random = new Random(seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float ChooseFromRange(float num1, float num2)
|
public float RandomFromRange(float num1, float num2)
|
||||||
{
|
{
|
||||||
return (float)(num1 + (num2 - num1) * random.NextDouble());
|
return (float)(num1 + (num2 - num1) * random.NextDouble());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user