From 2d76a9bc14e8b325458a8cc652ceaa3c2d2f5429 Mon Sep 17 00:00:00 2001 From: SergoDobro Date: Fri, 18 Aug 2023 11:53:23 +0300 Subject: [PATCH 1/2] gunshot fixes --- DangerousD/Content/Content.mgcb | 66 ++++++++++-------- DangerousD/Content/animations/playerShootLeft | 25 ++++++- .../Content/animations/playerShootRight | 25 ++++++- .../Content/{ => sounds}/DoomTestSong.mp3 | Bin DangerousD/Content/sounds/shotgun_shot.mp3 | Bin 0 -> 35691 bytes .../LivingEntities/Player/Player.cs | 1 + DangerousD/GameCore/Managers/SoundManager.cs | 8 +-- 7 files changed, 89 insertions(+), 36 deletions(-) rename DangerousD/Content/{ => sounds}/DoomTestSong.mp3 (100%) create mode 100644 DangerousD/Content/sounds/shotgun_shot.mp3 diff --git a/DangerousD/Content/Content.mgcb b/DangerousD/Content/Content.mgcb index 37d9842..d6828ea 100644 --- a/DangerousD/Content/Content.mgcb +++ b/DangerousD/Content/Content.mgcb @@ -21,18 +21,6 @@ /processorParam:TextureFormat=Compressed /build:ButtonFont.spritefont -#begin checkboxs_off-on.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:checkboxs_off-on.png - #begin checkboxs_off.png /importer:TextureImporter /processor:TextureProcessor @@ -45,6 +33,18 @@ /processorParam:TextureFormat=Color /build:checkboxs_off.png +#begin checkboxs_off-on.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:checkboxs_off-on.png + #begin checkboxs_on.png /importer:TextureImporter /processor:TextureProcessor @@ -81,12 +81,6 @@ /processorParam:TextureFormat=Color /build:deathBackground.jpg -#begin DoomTestSong.mp3 -/importer:Mp3Importer -/processor:SoundEffectProcessor -/processorParam:Quality=Best -/build:DoomTestSong.mp3 - #begin Font_12.spritefont /importer:FontDescriptionImporter /processor:FontDescriptionProcessor @@ -223,6 +217,18 @@ /processorParam:TextureFormat=Color /build:sliderBackground.png +#begin sounds/DoomTestSong.mp3 +/importer:Mp3Importer +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/DoomTestSong.mp3 + +#begin sounds/shotgun_shot.mp3 +/importer:Mp3Importer +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/shotgun_shot.mp3 + #begin textboxbackground1-1.png /importer:TextureImporter /processor:TextureProcessor @@ -235,18 +241,6 @@ /processorParam:TextureFormat=Color /build:textboxbackground1-1.png -#begin textboxbackground2-1.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:textboxbackground2-1.png - #begin textboxbackground2,5-1.png /importer:TextureImporter /processor:TextureProcessor @@ -259,6 +253,18 @@ /processorParam:TextureFormat=Color /build:textboxbackground2,5-1.png +#begin textboxbackground2-1.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:textboxbackground2-1.png + #begin textboxbackground6-1.png /importer:TextureImporter /processor:TextureProcessor diff --git a/DangerousD/Content/animations/playerShootLeft b/DangerousD/Content/animations/playerShootLeft index f2b9f3b..e710737 100644 --- a/DangerousD/Content/animations/playerShootLeft +++ b/DangerousD/Content/animations/playerShootLeft @@ -1 +1,24 @@ -{"id":"playerShootLeft","textureName":"playerAnimation","startSpriteRectangle":{"X":201,"Y":34,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":12}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"4, 0"} +{ + "id": "playerShootLeft", + "textureName": "playerAnimation", + "startSpriteRectangle": { + "X": 201, + "Y": 34, + "Width": 32, + "Height": 32 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 3 + }, + { + "Item1": 1, + "Item2": 20 + } + ], + "textureFrameInterval": 1, + "framesCount": 2, + "isCycle": false, + "offset": "4, 0" +} diff --git a/DangerousD/Content/animations/playerShootRight b/DangerousD/Content/animations/playerShootRight index 922862b..3b7ef81 100644 --- a/DangerousD/Content/animations/playerShootRight +++ b/DangerousD/Content/animations/playerShootRight @@ -1 +1,24 @@ -{"id":"playerShootRight","textureName":"playerAnimation","startSpriteRectangle":{"X":201,"Y":1,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":12}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"4, 0"} +{ + "id": "playerShootRight", + "textureName": "playerAnimation", + "startSpriteRectangle": { + "X": 201, + "Y": 1, + "Width": 32, + "Height": 32 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 3 + }, + { + "Item1": 1, + "Item2": 20 + } + ], + "textureFrameInterval": 1, + "framesCount": 2, + "isCycle": false, + "offset": "4, 0" +} diff --git a/DangerousD/Content/DoomTestSong.mp3 b/DangerousD/Content/sounds/DoomTestSong.mp3 similarity index 100% rename from DangerousD/Content/DoomTestSong.mp3 rename to DangerousD/Content/sounds/DoomTestSong.mp3 diff --git a/DangerousD/Content/sounds/shotgun_shot.mp3 b/DangerousD/Content/sounds/shotgun_shot.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..56a4a56bfb7c6bde5d7adb3634efbb21492a241f GIT binary patch literal 35691 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 x.EndsWith("mp3")); + var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("mp3")); if (k.Count() > 0) { @@ -27,7 +27,7 @@ namespace DangerousD.GameCore string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".mp3", "")).ToArray();// папка со звуками там где exe foreach (var soundFile in soundFiles) { - Sounds.Add(soundFile, AppManager.Instance.Content.Load(soundFile).CreateInstance()); + Sounds.Add(soundFile, AppManager.Instance.Content.Load("sounds//" + soundFile).CreateInstance()); } } @@ -53,7 +53,7 @@ namespace DangerousD.GameCore { var sound = new Sound(Sounds[soundName], soundPos); sound.SoundEffect.IsLooped = false; - sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance; + sound.SoundEffect.Volume = (float)(MaxSoundDistance-sound.GetDistance(playerPos)) / MaxSoundDistance; sound.SoundEffect.Play(); PlayingSounds.Add(sound); if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Host) @@ -79,7 +79,7 @@ namespace DangerousD.GameCore for (int i = 0; i < PlayingSounds.Count; i++) { if (!PlayingSounds[i].isAmbient) - PlayingSounds[i].SoundEffect.Volume = (float)PlayingSounds[i].GetDistance(player.Pos) / MaxSoundDistance; + PlayingSounds[i].SoundEffect.Volume = (float)(MaxSoundDistance - PlayingSounds[i].GetDistance(player.Pos)) / MaxSoundDistance; if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped) PlayingSounds.Remove(PlayingSounds[i]); } From bed41c5bf02452482a29fc6f5a29501d8c1d22dc Mon Sep 17 00:00:00 2001 From: AnloGames <7383an@gmail.com> Date: Fri, 18 Aug 2023 12:30:44 +0300 Subject: [PATCH 2/2] NetworkAnimationSupport(ChangeState) --- DangerousD/GameCore/GameObjects/GameObject.cs | 5 +++ .../LivingEntities/Player/Player.cs | 38 ++++++++++--------- .../GameCore/Graphics/GraphicsComponent.cs | 10 +++++ DangerousD/GameCore/Managers/AppManager.cs | 28 +++++++++++--- DangerousD/GameCore/Managers/GameManager.cs | 9 ++++- 5 files changed, 65 insertions(+), 25 deletions(-) diff --git a/DangerousD/GameCore/GameObjects/GameObject.cs b/DangerousD/GameCore/GameObjects/GameObject.cs index 65bf8c9..a2f0881 100644 --- a/DangerousD/GameCore/GameObjects/GameObject.cs +++ b/DangerousD/GameCore/GameObjects/GameObject.cs @@ -30,6 +30,7 @@ namespace DangerousD.GameCore LoadContent(); AppManager.Instance.GameManager.Register(this); + GraphicsComponent.parentId = id; } public virtual void OnCollision(GameObject gameObject) @@ -62,5 +63,9 @@ namespace DangerousD.GameCore //wdaspriteBatch.Draw(debugTexture,new Rectangle(Rectangle.X-GraphicsComponent.CameraPosition.X,Rectangle.Y-GraphicsComponent.CameraPosition.Y,Rectangle.Width,Rectangle.Height), Color.White); } + public GraphicsComponent GetGraphicsComponent() + { + return this.GraphicsComponent; + } } } \ No newline at end of file diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs index d0c144a..c55155f 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs @@ -32,14 +32,17 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities private int bullets; public bool FallingThroughPlatform = false; public bool isUping = false; + public bool isNetworkPlayer; + + - public int Bullets { get { return bullets; } } public Player(Vector2 position, bool isNetworkPlayer = false) : base(position) { + this.isNetworkPlayer = isNetworkPlayer; Width = 16; Height = 32; @@ -48,24 +51,24 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities AppManager.Instance.InputManager.ShootEvent += Shoot; AppManager.Instance.InputManager.MovEventJump += Jump; AppManager.Instance.InputManager.MovEventDown += MoveDown; + velocity = new Vector2(0, 0); + rightBorder = (int)position.X + 100; + leftBorder = (int)position.X - 100; + bullets = 5; + + this.GraphicsComponent.actionOfAnimationEnd += (a) => + { + if (a == "playerShootLeft" || a == "playerShootRight") + { + isShooting = false; + } + if (a == "playerReload") + { + bullets++; + } + }; } - velocity = new Vector2(0, 0); - rightBorder = (int)position.X + 100; - leftBorder = (int)position.X - 100; - bullets = 5; - - this.GraphicsComponent.actionOfAnimationEnd += (a) => - { - if (a == "playerShootLeft" || a == "playerShootRight") - { - isShooting = false; - } - if (a == "playerReload") - { - bullets++; - } - }; } public bool IsAlive { get { return isAlive; } } @@ -251,6 +254,5 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities isOnGround = false; AppManager.Instance.DebugHUD.Log("FallingThroughPlatform"); } - } } diff --git a/DangerousD/GameCore/Graphics/GraphicsComponent.cs b/DangerousD/GameCore/Graphics/GraphicsComponent.cs index 00d6298..fb72991 100644 --- a/DangerousD/GameCore/Graphics/GraphicsComponent.cs +++ b/DangerousD/GameCore/Graphics/GraphicsComponent.cs @@ -1,4 +1,5 @@ using DangerousD.GameCore.Managers; +using DangerousD.GameCore.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; @@ -18,6 +19,7 @@ namespace DangerousD.GameCore.Graphics private List texturesNames; private AnimationContainer currentAnimation; static private int scaling = 4; + public int parentId; public AnimationContainer CurrentAnimation { get @@ -105,6 +107,14 @@ namespace DangerousD.GameCore.Graphics public void StartAnimation(string startedanimationId) { + if (startedanimationId == "playerShootRight" && parentId == 17) + { + string a = "2"; + } + if (AppManager.Instance.multiPlayerStatus != MultiPlayerStatus.SinglePlayer && startedanimationId != GetCurrentAnimation) + { + AppManager.Instance.NetworkTasks.Add(new NetworkTask(parentId, startedanimationId, Vector2.Zero)); + } currentFrame = 0; currentAnimation = animations.Find(x => x.Id == startedanimationId); diff --git a/DangerousD/GameCore/Managers/AppManager.cs b/DangerousD/GameCore/Managers/AppManager.cs index 33327c7..acd833f 100644 --- a/DangerousD/GameCore/Managers/AppManager.cs +++ b/DangerousD/GameCore/Managers/AppManager.cs @@ -111,9 +111,8 @@ namespace DangerousD.GameCore { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); - - if (GameManager.GetPlayer1 != null) - DebugHUD.Set("Objid: ", GameManager.GetPlayer1.id.ToString()); + if (GameManager.GetPlayer1 != null) + DebugHUD.Set("id: ", GameManager.GetPlayer1.id.ToString()); InputManager.Update(); SoundManager.Update(); @@ -229,10 +228,11 @@ namespace DangerousD.GameCore case NetworkTaskOperationEnum.CreateEntity: break; case NetworkTaskOperationEnum.SendPosition: - if (networkTask.objId != GameManager.GetPlayer1.id) + if (networkTask.objId != GameManager.GetPlayer1.id ) { LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId); - entity.SetPosition(networkTask.position); + if (entity != null) + entity.SetPosition(networkTask.position); if (multiPlayerStatus == MultiPlayerStatus.Host) { NetworkTasks.Add(networkTask); @@ -240,6 +240,20 @@ namespace DangerousD.GameCore } break; case NetworkTaskOperationEnum.ChangeState: + if (networkTask.objId != GameManager.GetPlayer1.id) + { + List gcs = new List(); + foreach (var player in GameManager.players) + { + gcs.Add(player.GetGraphicsComponent()); + } + LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId); + if (entity != null) + { + GraphicsComponent gc = entity.GetGraphicsComponent(); + gc.StartAnimation(networkTask.name); + } + } break; case NetworkTaskOperationEnum.ConnectToHost: Player connectedPlayer = new Player(Vector2.Zero, true); @@ -257,13 +271,15 @@ namespace DangerousD.GameCore if (!GameManager.GetPlayer1.isIdFromHost) { GameManager.GetPlayer1.id = networkTask.objId; + GraphicsComponent gcsd = GameManager.GetPlayer1.GetGraphicsComponent(); + gcsd.parentId = networkTask.objId; GameManager.GetPlayer1.isIdFromHost = true; } break; case NetworkTaskOperationEnum.AddConnectedPlayer: Player remoteConnectedPlayer = new Player(networkTask.position, true); remoteConnectedPlayer.id = networkTask.objId; - + remoteConnectedPlayer.GetGraphicsComponent().parentId = networkTask.objId; break; default: break; diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index 53ffa61..f4a213a 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -150,14 +150,21 @@ namespace DangerousD.GameCore } else - { for (int i = 0; i < livingEntitiesWithoutPlayers.Count; i++) { livingEntitiesWithoutPlayers[i].PlayAnimation(); } } + foreach (Player player in players) + { + if (player.id != GetPlayer1.id) + { + player.PlayAnimation(); + } + } GetPlayer1.Update(gameTime); + foreach (var item in otherObjects) item.Update(gameTime);