mirror of
https://github.com/TheRavenwoodArts/LunaLightXMG.git
synced 2026-07-31 00:05:02 -07:00
Cannot get keyboard input to function still.
This commit is contained in:
@@ -9,7 +9,7 @@ using Microsoft.Xna.Framework.Audio;
|
||||
|
||||
namespace LunaLightXMG
|
||||
{
|
||||
class Level : Game, IDisposable
|
||||
public class Level : Game, IDisposable
|
||||
{
|
||||
// Objects
|
||||
private Camera2D camera2D;
|
||||
@@ -20,7 +20,7 @@ namespace LunaLightXMG
|
||||
private int retroHeight = 180;
|
||||
|
||||
// Entities
|
||||
private List<Enemy> enemies = new List<Enemy>();
|
||||
private List<Enemy> enemies;
|
||||
private int numberOfEnemies;
|
||||
public Player Player
|
||||
{
|
||||
@@ -78,8 +78,13 @@ namespace LunaLightXMG
|
||||
#region Loading
|
||||
|
||||
// Level Definition
|
||||
public Level(SpriteBatch spriteBatch, RenderHandler render_handler)
|
||||
public Level(IServiceProvider serviceProvider,SpriteBatch spriteBatch, RenderHandler render_handler)
|
||||
{
|
||||
// Create content manager to load content used by just this level.
|
||||
content = new ContentManager(serviceProvider, "Content");
|
||||
|
||||
renderHandler = render_handler;
|
||||
|
||||
// Initialize camera
|
||||
camera2D = new Camera2D(retroWidth, retroHeight);
|
||||
// camera test - set level bounds
|
||||
@@ -99,6 +104,7 @@ namespace LunaLightXMG
|
||||
Vector2 initPlayerPosition = new Vector2(163, 0);
|
||||
player = new Player(initPlayerPosition);
|
||||
playerInput = new PlayerInput();
|
||||
playerInput.HasControl = true;
|
||||
player.LoadContent(Content);
|
||||
|
||||
// Init number of platforms / enemies
|
||||
@@ -106,7 +112,7 @@ namespace LunaLightXMG
|
||||
numberOfEnemies = 10;
|
||||
|
||||
// Load enemies
|
||||
SpawnEnemies(numberOfEnemies);
|
||||
enemies = SpawnEnemies(numberOfEnemies);
|
||||
|
||||
|
||||
|
||||
@@ -129,52 +135,53 @@ namespace LunaLightXMG
|
||||
platforms = PlatformGenerator.CreatePlatforms(numberOfPlatforms);
|
||||
}
|
||||
|
||||
private void SpawnEnemies(int numOfEnemies)
|
||||
private List<Enemy> SpawnEnemies(int numOfEnemies)
|
||||
{
|
||||
enemies = new List<Enemy>();
|
||||
List<Enemy> newEnemies = new List<Enemy>();
|
||||
for (int i = 0; i < numOfEnemies; i++)
|
||||
{
|
||||
Vector2 spawnPosition = new Vector2(16 + i * 3, -16);
|
||||
enemies.Add(new Enemy(spawnPosition, utilities.RandomFromRange(1,3), Content));
|
||||
Enemy enemy = new(spawnPosition, random.Next(1,3));
|
||||
enemy.LoadContent(Content);
|
||||
newEnemies.Add(enemy);
|
||||
}
|
||||
return newEnemies;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Update
|
||||
|
||||
public void Update(GameTime gameTime)
|
||||
public void Update(GameTime gameTime, KeyboardState keyboardState)
|
||||
{
|
||||
// Temporary quit game
|
||||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
||||
if (keyboardState.IsKeyDown(Keys.Escape))
|
||||
Exit();
|
||||
// Check for game reset
|
||||
if (Keyboard.GetState().IsKeyDown(Keys.R))
|
||||
if (keyboardState.IsKeyDown(Keys.R))
|
||||
ResetGame();
|
||||
else
|
||||
{
|
||||
// Update player
|
||||
playerInput.Update();
|
||||
player.Update(gameTime, playerInput, platforms);
|
||||
|
||||
// Update Enemies
|
||||
foreach(var enemy in enemies)
|
||||
enemy.Update(gameTime, player, platforms);
|
||||
|
||||
// Test render handler
|
||||
renderHandler.UpdateZoom();
|
||||
// Update player
|
||||
playerInput.Update(keyboardState);
|
||||
player.Update(gameTime, playerInput, platforms);
|
||||
|
||||
//Update camera position
|
||||
camera2D.Follow(gameTime, player.position);
|
||||
camera2D.UpdateScreenShake(gameTime);
|
||||
// Update Enemies
|
||||
foreach(var enemy in enemies)
|
||||
enemy.Update(gameTime, player, platforms);
|
||||
|
||||
// Test render handler
|
||||
renderHandler.UpdateZoom();
|
||||
|
||||
// Camera testing
|
||||
TestCameraWhilePlaying();
|
||||
ToggleBackgroundMusic();
|
||||
|
||||
// Update keyState
|
||||
prevKeyState = Keyboard.GetState();
|
||||
}
|
||||
//Update camera position
|
||||
camera2D.Follow(gameTime, player.position);
|
||||
camera2D.UpdateScreenShake(gameTime);
|
||||
|
||||
// Camera testing
|
||||
TestCameraWhilePlaying();
|
||||
ToggleBackgroundMusic();
|
||||
|
||||
// Update keyState
|
||||
prevKeyState = Keyboard.GetState();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
@@ -206,10 +213,10 @@ namespace LunaLightXMG
|
||||
}
|
||||
|
||||
renderHandler.EndRenderTarget();
|
||||
renderHandler.DrawRenderTarget();
|
||||
|
||||
renderHandler.DrawRenderTarget(player, debugFont, camera2D);
|
||||
|
||||
// Debugging
|
||||
DrawDebugInfo(spriteBatch);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -233,7 +240,7 @@ namespace LunaLightXMG
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetGame()
|
||||
public void ResetGame()
|
||||
{
|
||||
// reset cam
|
||||
camera2D.Rotation = 0;
|
||||
@@ -253,10 +260,14 @@ namespace LunaLightXMG
|
||||
LoadPlatforms();
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Testing
|
||||
|
||||
private void DrawDebugInfo(SpriteBatch spriteBatch)
|
||||
{
|
||||
spriteBatch.Begin();
|
||||
|
||||
// Draw debug messages
|
||||
spriteBatch.DrawString(debugFont, $"VSP: {player.vsp}", new Vector2(10, 10), Color.White);
|
||||
spriteBatch.DrawString(debugFont, $"Grounded: {player.grounded}", new Vector2(10, 30), Color.White);
|
||||
@@ -265,21 +276,14 @@ namespace LunaLightXMG
|
||||
spriteBatch.DrawString(debugFont, $"Camera Position: {camera2D.Position}", new Vector2(10, 90), Color.White);
|
||||
spriteBatch.DrawString(debugFont, $"Camera Rotation: {camera2D.Rotation}", new Vector2(10, 110), Color.White);
|
||||
spriteBatch.DrawString(debugFont, $"Render Target Zoom: {renderHandler.ZoomLevel}", new Vector2(10, 130), Color.White);
|
||||
|
||||
|
||||
spriteBatch.DrawString(debugFont, $"Camera Rotation Control - Rotate left: K, Rotate right: L", new Vector2(10, 190), 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 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();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Testing
|
||||
|
||||
private void ToggleBackgroundMusic()
|
||||
{
|
||||
KeyboardState currKeyState = Keyboard.GetState();
|
||||
|
||||
Reference in New Issue
Block a user