From 3e5e5192b8a391486642684519edcebe5a350555 Mon Sep 17 00:00:00 2001 From: SergoDobro Date: Tue, 15 Aug 2023 13:40:45 +0300 Subject: [PATCH] day commit refactoring --- AnimationsFileCreator/Program.cs | 1 + .../AnimatorCreatorGraphical.csproj | 23 ++++++++ AnimatorCreatorGraphical/Content/Content.mgcb | 15 +++++ AnimatorCreatorGraphical/Game1.cs | 52 ++++++++++++++++++ AnimatorCreatorGraphical/Icon.ico | Bin 0 -> 147541 bytes AnimatorCreatorGraphical/Program.cs | 14 +++++ AnimatorCreatorGraphical/app.manifest | 43 +++++++++++++++ DangerousD/Content/Content.mgcb | 12 ++++ ...In_The_Haunted_Mansion_Death_Sequences.png | Bin 0 -> 23391 bytes DangerousD/Content/animations/death1 | 1 + DangerousD/Content/animations/deathbear | 1 + DangerousD/GameCore/GUI/AbstractGui.cs | 4 +- DangerousD/GameCore/GameObjects/GameObject.cs | 2 +- .../GameObjects/LivingEntities/Player.cs | 16 ++++++ .../MapObjects/TestAnimationDeath.cs | 25 +++++++++ .../GameCore/Graphics/AnimationBuilder.cs | 12 ++-- .../GameCore/Graphics/GraphicsComponent.cs | 3 + .../GameCore/Graphics/SettingsManager.cs | 13 +++++ DangerousD/GameCore/Levels/ILevel.cs | 7 +++ DangerousD/GameCore/Levels/Level1.cs | 17 ++++++ DangerousD/GameCore/Managers/AppManager.cs | 1 + DangerousD/GameCore/Managers/GameManager.cs | 5 +- DangerousD/GameCore/Managers/MapManager.cs | 14 +---- .../UI/Base/DrawableTextedUiElement.cs | 2 +- 24 files changed, 256 insertions(+), 27 deletions(-) create mode 100644 AnimatorCreatorGraphical/AnimatorCreatorGraphical.csproj create mode 100644 AnimatorCreatorGraphical/Content/Content.mgcb create mode 100644 AnimatorCreatorGraphical/Game1.cs create mode 100644 AnimatorCreatorGraphical/Icon.ico create mode 100644 AnimatorCreatorGraphical/Program.cs create mode 100644 AnimatorCreatorGraphical/app.manifest create mode 100644 DangerousD/Content/PC_Computer_Dangerous_Dave_In_The_Haunted_Mansion_Death_Sequences.png create mode 100644 DangerousD/Content/animations/death1 create mode 100644 DangerousD/Content/animations/deathbear create mode 100644 DangerousD/GameCore/GameObjects/LivingEntities/Player.cs create mode 100644 DangerousD/GameCore/GameObjects/MapObjects/TestAnimationDeath.cs create mode 100644 DangerousD/GameCore/Graphics/SettingsManager.cs create mode 100644 DangerousD/GameCore/Levels/ILevel.cs create mode 100644 DangerousD/GameCore/Levels/Level1.cs diff --git a/AnimationsFileCreator/Program.cs b/AnimationsFileCreator/Program.cs index 223db5d..1287e6f 100644 --- a/AnimationsFileCreator/Program.cs +++ b/AnimationsFileCreator/Program.cs @@ -21,6 +21,7 @@ namespace AnimationsFileCreator OpenFileDialog dialog = new OpenFileDialog(); dialog.ShowDialog(); textureName = dialog.FileName.Split('\\').Last(); + textureName = textureName.Split('.')[0]; } Console.WriteLine("Введите количество кадров анимации: "); int framesCount = int.Parse(Console.ReadLine()); diff --git a/AnimatorCreatorGraphical/AnimatorCreatorGraphical.csproj b/AnimatorCreatorGraphical/AnimatorCreatorGraphical.csproj new file mode 100644 index 0000000..5392df9 --- /dev/null +++ b/AnimatorCreatorGraphical/AnimatorCreatorGraphical.csproj @@ -0,0 +1,23 @@ + + + WinExe + netcoreapp3.1 + false + false + true + + + app.manifest + Icon.ico + + + + + + + + + + + + \ No newline at end of file diff --git a/AnimatorCreatorGraphical/Content/Content.mgcb b/AnimatorCreatorGraphical/Content/Content.mgcb new file mode 100644 index 0000000..3c42606 --- /dev/null +++ b/AnimatorCreatorGraphical/Content/Content.mgcb @@ -0,0 +1,15 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + + +#---------------------------------- Content ---------------------------------# + diff --git a/AnimatorCreatorGraphical/Game1.cs b/AnimatorCreatorGraphical/Game1.cs new file mode 100644 index 0000000..66f9a30 --- /dev/null +++ b/AnimatorCreatorGraphical/Game1.cs @@ -0,0 +1,52 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; + +namespace AnimatorCreatorGraphical +{ + public class Game1 : Game + { + private GraphicsDeviceManager _graphics; + private SpriteBatch _spriteBatch; + + public Game1() + { + _graphics = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + } + + protected override void Initialize() + { + // TODO: Add your initialization logic here + + base.Initialize(); + } + + protected override void LoadContent() + { + _spriteBatch = new SpriteBatch(GraphicsDevice); + + // TODO: use this.Content to load your game content here + } + + protected override void Update(GameTime gameTime) + { + if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) + Exit(); + + // TODO: Add your update logic here + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.CornflowerBlue); + + // TODO: Add your drawing code here + + base.Draw(gameTime); + } + } +} diff --git a/AnimatorCreatorGraphical/Icon.ico b/AnimatorCreatorGraphical/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7d9dec18704053ee43cd7c956022ddbdb34d8de1 GIT binary patch literal 147541 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/AnimatorCreatorGraphical/Program.cs b/AnimatorCreatorGraphical/Program.cs new file mode 100644 index 0000000..7b6eeb6 --- /dev/null +++ b/AnimatorCreatorGraphical/Program.cs @@ -0,0 +1,14 @@ +using System; + +namespace AnimatorCreatorGraphical +{ + public static class Program + { + [STAThread] + static void Main() + { + using (var game = new Game1()) + game.Run(); + } + } +} diff --git a/AnimatorCreatorGraphical/app.manifest b/AnimatorCreatorGraphical/app.manifest new file mode 100644 index 0000000..9c00a30 --- /dev/null +++ b/AnimatorCreatorGraphical/app.manifest @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + permonitorv2,permonitor + + + + diff --git a/DangerousD/Content/Content.mgcb b/DangerousD/Content/Content.mgcb index df82e29..97afe2e 100644 --- a/DangerousD/Content/Content.mgcb +++ b/DangerousD/Content/Content.mgcb @@ -13,6 +13,18 @@ #---------------------------------- Content ---------------------------------# +#begin PC_Computer_Dangerous_Dave_In_The_Haunted_Mansion_Death_Sequences.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:PC_Computer_Dangerous_Dave_In_The_Haunted_Mansion_Death_Sequences.png + #begin wall.jpg /importer:TextureImporter /processor:TextureProcessor diff --git a/DangerousD/Content/PC_Computer_Dangerous_Dave_In_The_Haunted_Mansion_Death_Sequences.png b/DangerousD/Content/PC_Computer_Dangerous_Dave_In_The_Haunted_Mansion_Death_Sequences.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb4a52db46469a9dd62b44221a64897aa802204 GIT binary patch literal 23391 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 q+D&sf6)cz Elements = new(); - + protected string font; public AbstractGui() { } @@ -19,7 +19,7 @@ public abstract class AbstractGui : IDrawableObject public virtual void Initialize(GraphicsDevice graphicsDevice) { - Manager.Initialize("", graphicsDevice); + Manager.Initialize(font, graphicsDevice); CreateUI(); } diff --git a/DangerousD/GameCore/GameObjects/GameObject.cs b/DangerousD/GameCore/GameObjects/GameObject.cs index 83bc3f8..82648d4 100644 --- a/DangerousD/GameCore/GameObjects/GameObject.cs +++ b/DangerousD/GameCore/GameObjects/GameObject.cs @@ -6,6 +6,7 @@ using DangerousD.GameCore.GUI; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; +using DangerousD.GameCore.GameObjects.LivingEntities; namespace DangerousD.GameCore { @@ -16,7 +17,6 @@ namespace DangerousD.GameCore public int Height { get; protected set; } public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height); protected abstract GraphicsComponent GraphicsComponent { get; } - public GameObject(Vector2 pos) { Pos = pos; diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Player.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Player.cs new file mode 100644 index 0000000..897a1ef --- /dev/null +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Player.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DangerousD.GameCore.GameObjects.LivingEntities +{ + public class Player + { + public void Kill() + { + + } + } +} diff --git a/DangerousD/GameCore/GameObjects/MapObjects/TestAnimationDeath.cs b/DangerousD/GameCore/GameObjects/MapObjects/TestAnimationDeath.cs new file mode 100644 index 0000000..6937c56 --- /dev/null +++ b/DangerousD/GameCore/GameObjects/MapObjects/TestAnimationDeath.cs @@ -0,0 +1,25 @@ +using DangerousD.GameCore.Graphics; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DangerousD.GameCore.GameObjects.MapObjects +{ + internal class TestAnimationDeath : Entity + { + protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "death1", "deathbear" },"death1"); + + public TestAnimationDeath(Vector2 position) : base(position) + { + Width = 64; + Height = 64; + + GraphicsComponent.StartAnimation("deathbear"); + + } + } +} diff --git a/DangerousD/GameCore/Graphics/AnimationBuilder.cs b/DangerousD/GameCore/Graphics/AnimationBuilder.cs index 9a64339..8f35b5a 100644 --- a/DangerousD/GameCore/Graphics/AnimationBuilder.cs +++ b/DangerousD/GameCore/Graphics/AnimationBuilder.cs @@ -9,16 +9,12 @@ namespace DangerousD.GameCore.Graphics public class AnimationBuilder { public List Animations { get; private set; } - void LoadAnimations(string nameOfMainFile) + public void LoadAnimations() { Animations = new List(); - List animationFilesNames = new List(); - StreamReader reader = new StreamReader(nameOfMainFile); - while (reader.Peek() != -1) - { - animationFilesNames.Add(reader.ReadLine()); - } - reader.Close(); + string[] animationFilesNames = Directory.GetFiles("../../../Content/animations"); + + StreamReader reader; foreach (var fileName in animationFilesNames) { reader = new StreamReader(fileName); diff --git a/DangerousD/GameCore/Graphics/GraphicsComponent.cs b/DangerousD/GameCore/Graphics/GraphicsComponent.cs index fad85b5..e605684 100644 --- a/DangerousD/GameCore/Graphics/GraphicsComponent.cs +++ b/DangerousD/GameCore/Graphics/GraphicsComponent.cs @@ -35,6 +35,9 @@ namespace DangerousD.GameCore.Graphics lastInterval = 1; LoadAnimations(animationsId, neitralAnimationId); + currentAnimation = neitralAnimation; + SetInterval(); + buildSourceRectangle(); } public GraphicsComponent(string textureName) diff --git a/DangerousD/GameCore/Graphics/SettingsManager.cs b/DangerousD/GameCore/Graphics/SettingsManager.cs new file mode 100644 index 0000000..3c1122a --- /dev/null +++ b/DangerousD/GameCore/Graphics/SettingsManager.cs @@ -0,0 +1,13 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DangerousD.GameCore.Graphics +{ + internal class SettingsManager + { + } +} diff --git a/DangerousD/GameCore/Levels/ILevel.cs b/DangerousD/GameCore/Levels/ILevel.cs new file mode 100644 index 0000000..7fbec35 --- /dev/null +++ b/DangerousD/GameCore/Levels/ILevel.cs @@ -0,0 +1,7 @@ +namespace DangerousD.GameCore.Levels +{ + interface ILevel + { + void InitLevel(); + } +} diff --git a/DangerousD/GameCore/Levels/Level1.cs b/DangerousD/GameCore/Levels/Level1.cs new file mode 100644 index 0000000..5ab7a66 --- /dev/null +++ b/DangerousD/GameCore/Levels/Level1.cs @@ -0,0 +1,17 @@ +using DangerousD.GameCore.GameObjects.LivingEntities; +using DangerousD.GameCore.GameObjects.MapObjects; +using Microsoft.Xna.Framework; + +namespace DangerousD.GameCore.Levels +{ + public class Level1 : ILevel + { + public void InitLevel() + { + new Player(); + var Трава = new GrassBlock(new Vector2(0, 128)); + var Death = new TestAnimationDeath(new Vector2(128, 128)); + + } + } +} diff --git a/DangerousD/GameCore/Managers/AppManager.cs b/DangerousD/GameCore/Managers/AppManager.cs index 68cd6c6..c3c60fb 100644 --- a/DangerousD/GameCore/Managers/AppManager.cs +++ b/DangerousD/GameCore/Managers/AppManager.cs @@ -38,6 +38,7 @@ namespace DangerousD.GameCore protected override void Initialize() { MenuGUI.Initialize(GraphicsDevice); + AnimationBuilder.LoadAnimations(); base.Initialize(); } diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index 25021cd..497fa9c 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -1,4 +1,5 @@ using DangerousD.GameCore.GameObjects; +using DangerousD.GameCore.GameObjects.LivingEntities; using DangerousD.GameCore.Graphics; using DangerousD.GameCore.Managers; using Microsoft.Xna.Framework; @@ -14,8 +15,8 @@ namespace DangerousD.GameCore List livingEntities; List entities; List mapObjects; - public MapManager mapManager; - + public MapManager mapManager; + public Player Player { get; set; } public GameManager() { livingEntities = new List(); diff --git a/DangerousD/GameCore/Managers/MapManager.cs b/DangerousD/GameCore/Managers/MapManager.cs index 6b85e53..f5c9d28 100644 --- a/DangerousD/GameCore/Managers/MapManager.cs +++ b/DangerousD/GameCore/Managers/MapManager.cs @@ -1,7 +1,6 @@ using DangerousD.GameCore.GameObjects; -using DangerousD.GameCore.GameObjects.MapObjects; using DangerousD.GameCore.Graphics; -using Microsoft.Xna.Framework; +using DangerousD.GameCore.Levels; using System; using System.Collections.Generic; using System.Linq; @@ -11,17 +10,6 @@ using System.Threading.Tasks; namespace DangerousD.GameCore.Managers { - interface ILevel - { - void InitLevel(); - } - public class Level1 : ILevel - { - public void InitLevel() - { - var Трава = new GrassBlock(new Vector2(0,128)); - } - } public class MapManager { ILevel Level; diff --git a/MonogameLibrary/UI/Base/DrawableTextedUiElement.cs b/MonogameLibrary/UI/Base/DrawableTextedUiElement.cs index 2527ccc..2a45c2c 100644 --- a/MonogameLibrary/UI/Base/DrawableTextedUiElement.cs +++ b/MonogameLibrary/UI/Base/DrawableTextedUiElement.cs @@ -13,7 +13,7 @@ namespace MonogameLibrary.UI.Base public class DrawableTextedUiElement : DrawableUIElement { protected SpriteFont spriteFont; - protected string fontName; + public string fontName; public string text = ""; public float scale = 0.5f; public Color fontColor = Color.Black;