mirror of
https://github.com/TheRavenwoodArts/LunaLightXMG.git
synced 2026-07-31 00:05:02 -07:00
Super Happy Jumping Pickle Man!
This commit is contained in:
@@ -7,27 +7,32 @@ namespace LunaLightXMG
|
||||
{
|
||||
public class Game1 : Game
|
||||
{
|
||||
// Class Objects
|
||||
private Player player;
|
||||
private PlayerInput playerInput;
|
||||
private GraphicsDeviceManager graphics;
|
||||
private SpriteBatch spriteBatch;
|
||||
|
||||
// Native retro scale
|
||||
private int retroWidth = 320;
|
||||
private int retroHeight = 180;
|
||||
|
||||
// Test Render Target
|
||||
private RenderTarget2D renderTarget;
|
||||
private Rectangle renderDestination;
|
||||
bool resizing;
|
||||
|
||||
// Test sprites
|
||||
Texture2D sprRo;
|
||||
Texture2D sprCave1Background;
|
||||
Texture2D sprCave1Foreground;
|
||||
Texture2D sprCave1Walls;
|
||||
// Test sprites - eventually handle in a sprite manager?
|
||||
//Texture2D sprCave1Background;
|
||||
//Texture2D sprCave1Foreground;
|
||||
//Texture2D sprCave1Walls;
|
||||
Texture2D platformTexture;
|
||||
|
||||
// Test player input and movement with abstracted player class
|
||||
private Player player;
|
||||
// Player input
|
||||
private PlayerInput playerInput;
|
||||
// Native retro scale
|
||||
private int retroWidth = 320;
|
||||
private int retroHeight = 180;
|
||||
// Test platforms
|
||||
Platform[] platforms;
|
||||
|
||||
// Debugging
|
||||
SpriteFont debugFont;
|
||||
|
||||
public Game1()
|
||||
{
|
||||
@@ -37,10 +42,11 @@ namespace LunaLightXMG
|
||||
|
||||
Window.ClientSizeChanged += OnClientSizeChanged;
|
||||
Window.AllowUserResizing = true;
|
||||
IsMouseVisible = true;
|
||||
IsMouseVisible = true;
|
||||
|
||||
// Test player input and movement with abstracted player class
|
||||
player = new Player();
|
||||
Vector2 initPlayerPosition = new Vector2(163, 63);
|
||||
player = new Player(initPlayerPosition);
|
||||
playerInput = new PlayerInput();
|
||||
}
|
||||
|
||||
@@ -65,6 +71,72 @@ namespace LunaLightXMG
|
||||
|
||||
base.Initialize();
|
||||
CalculateRenderDestination();
|
||||
|
||||
// Test initialize platforms -- this should be abstracted to a class
|
||||
// Also, I'm assuming using a tool like tiled will prevent having to
|
||||
// manually input platforms like below...
|
||||
platforms = new Platform[]
|
||||
{
|
||||
// platforms
|
||||
new Platform(new Vector2(48, 128), 16, 16),
|
||||
new Platform(new Vector2(64, 128), 16, 16),
|
||||
new Platform(new Vector2(96, 96), 16, 16),
|
||||
new Platform(new Vector2(112, 96), 16, 16),
|
||||
new Platform(new Vector2(192, 128), 16, 16),
|
||||
new Platform(new Vector2(208, 128), 16, 16),
|
||||
new Platform(new Vector2(240, 96), 16, 16),
|
||||
new Platform(new Vector2(256, 96), 16, 16),
|
||||
new Platform(new Vector2(192, 64), 16, 16),
|
||||
new Platform(new Vector2(208, 64), 16, 16),
|
||||
new Platform(new Vector2(144, 32), 16, 16),
|
||||
new Platform(new Vector2(160, 32), 16, 16),
|
||||
new Platform(new Vector2(288, 128), 16, 16),
|
||||
new Platform(new Vector2(16, 96), 16, 16),
|
||||
|
||||
// bottom
|
||||
new Platform(new Vector2(16, 160), 16, 16),
|
||||
new Platform(new Vector2(32, 160), 16, 16),
|
||||
new Platform(new Vector2(48, 160), 16, 16),
|
||||
new Platform(new Vector2(64, 160), 16, 16),
|
||||
new Platform(new Vector2(80, 160), 16, 16),
|
||||
new Platform(new Vector2(96, 160), 16, 16),
|
||||
new Platform(new Vector2(112, 160), 16, 16),
|
||||
new Platform(new Vector2(128, 160), 16, 16),
|
||||
new Platform(new Vector2(144, 160), 16, 16),
|
||||
new Platform(new Vector2(160, 160), 16, 16),
|
||||
new Platform(new Vector2(176, 160), 16, 16),
|
||||
new Platform(new Vector2(192, 160), 16, 16),
|
||||
new Platform(new Vector2(208, 160), 16, 16),
|
||||
new Platform(new Vector2(224, 160), 16, 16),
|
||||
new Platform(new Vector2(240, 160), 16, 16),
|
||||
new Platform(new Vector2(256, 160), 16, 16),
|
||||
new Platform(new Vector2(272, 160), 16, 16),
|
||||
new Platform(new Vector2(288, 160), 16, 16),
|
||||
|
||||
// left side
|
||||
new Platform(new Vector2(0, 0), 16, 16),
|
||||
new Platform(new Vector2(0, 16), 16, 16),
|
||||
new Platform(new Vector2(0, 32), 16, 16),
|
||||
new Platform(new Vector2(0, 48), 16, 16),
|
||||
new Platform(new Vector2(0, 64), 16, 16),
|
||||
new Platform(new Vector2(0, 80), 16, 16),
|
||||
new Platform(new Vector2(0, 96), 16, 16),
|
||||
new Platform(new Vector2(0, 112), 16, 16),
|
||||
new Platform(new Vector2(0, 128), 16, 16),
|
||||
new Platform(new Vector2(0, 144), 16, 16),
|
||||
|
||||
// right side
|
||||
new Platform(new Vector2(304, 0), 16, 16),
|
||||
new Platform(new Vector2(304, 16), 16, 16),
|
||||
new Platform(new Vector2(304, 32), 16, 16),
|
||||
new Platform(new Vector2(304, 48), 16, 16),
|
||||
new Platform(new Vector2(304, 64), 16, 16),
|
||||
new Platform(new Vector2(304, 80), 16, 16),
|
||||
new Platform(new Vector2(304, 96), 16, 16),
|
||||
new Platform(new Vector2(304, 112), 16, 16),
|
||||
new Platform(new Vector2(304, 128), 16, 16),
|
||||
new Platform(new Vector2(304, 144), 16, 16)
|
||||
};
|
||||
}
|
||||
|
||||
private void CalculateRenderDestination()
|
||||
@@ -89,13 +161,20 @@ namespace LunaLightXMG
|
||||
protected override void LoadContent()
|
||||
{
|
||||
spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||
sprRo = Content.Load<Texture2D>("sprRo_Wall");
|
||||
sprCave1Background = Content.Load<Texture2D>("spr_cave1_background");
|
||||
sprCave1Foreground = Content.Load<Texture2D>("spr_Cave1_foreground");
|
||||
sprCave1Walls = Content.Load<Texture2D>("spr_Cave1_walls");
|
||||
//sprCave1Background = Content.Load<Texture2D>("spr_cave1_background");
|
||||
//sprCave1Foreground = Content.Load<Texture2D>("spr_Cave1_foreground");
|
||||
//sprCave1Walls = Content.Load<Texture2D>("spr_Cave1_walls");
|
||||
// Test platform
|
||||
platformTexture = Content.Load<Texture2D>("platform");
|
||||
|
||||
// load player sprite
|
||||
player.LoadContent(Content); // player sprite is now handled in player.cs
|
||||
|
||||
// Test Render Target
|
||||
renderTarget = new RenderTarget2D(GraphicsDevice, retroWidth, retroHeight);
|
||||
|
||||
// Debugging
|
||||
debugFont = Content.Load<SpriteFont>("fonts/debugFont");
|
||||
}
|
||||
|
||||
protected override void Update(GameTime gameTime)
|
||||
@@ -106,7 +185,7 @@ namespace LunaLightXMG
|
||||
|
||||
// Test player input and movement with abstracted player class
|
||||
playerInput.Update();
|
||||
player.Update(gameTime, playerInput);
|
||||
player.Update(gameTime, playerInput, platforms);
|
||||
|
||||
base.Update(gameTime);
|
||||
}
|
||||
@@ -121,13 +200,19 @@ namespace LunaLightXMG
|
||||
// Test Sprite
|
||||
spriteBatch.Begin(samplerState: SamplerState.PointClamp);
|
||||
// Draw sprites here
|
||||
spriteBatch.Draw(sprCave1Background,new Vector2(0,0),Color.White);
|
||||
//spriteBatch.Draw(sprCave1Background,new Vector2(0,0),Color.White);
|
||||
|
||||
// Test draw tiles
|
||||
foreach (var platform in platforms)
|
||||
{
|
||||
platform.Draw(spriteBatch, platformTexture); // Assuming all tiles use the same texture for now
|
||||
}
|
||||
|
||||
// Test player input and movement with abstracted player class
|
||||
player.Draw(spriteBatch, sprRo);
|
||||
player.Draw(spriteBatch);
|
||||
|
||||
spriteBatch.Draw(sprCave1Walls, new Vector2(0, 0), Color.White);
|
||||
spriteBatch.Draw(sprCave1Foreground, new Vector2(0, 0), Color.White);
|
||||
//spriteBatch.Draw(sprCave1Walls, new Vector2(0, 0), Color.White);
|
||||
//spriteBatch.Draw(sprCave1Foreground, new Vector2(0, 0), Color.White);
|
||||
spriteBatch.End();
|
||||
|
||||
|
||||
@@ -137,7 +222,24 @@ namespace LunaLightXMG
|
||||
spriteBatch.Draw(renderTarget, renderDestination, Color.White);
|
||||
spriteBatch.End();
|
||||
|
||||
// Debugging
|
||||
DrawDebugInfo();
|
||||
|
||||
base.Draw(gameTime);
|
||||
}
|
||||
|
||||
// Debugging
|
||||
private void DrawDebugInfo()
|
||||
{
|
||||
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);
|
||||
spriteBatch.DrawString(debugFont, $"Walled: {player.walled}", new Vector2(10, 50), Color.White);
|
||||
spriteBatch.DrawString(debugFont, $"Position: {player.position}", new Vector2(10, 70), Color.White);
|
||||
|
||||
spriteBatch.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user