diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs index b0b3429..48e1dcf 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs @@ -13,10 +13,15 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters internal class Frank : CoreEnemy { private bool isGoRight = false; + private int leftBoarder; + private int rightBoarder; + public Frank(Vector2 position) : base(position) { Width = 112; Height = 160; + leftBoarder = 50; + rightBoarder = 500; GraphicsComponent.StartAnimation("FrankMoveLeft"); monster_speed = 1; name = "Frank"; diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs index 7101da2..81a0907 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs @@ -23,6 +23,11 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "BallMoveRight" }, "BallMoveRight"); + public override void Update(GameTime gameTime) + { + + base.Update(gameTime); + } public override void Attack() { diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs index bffa5f6..a7c6173 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs @@ -46,7 +46,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters webLength++; _pos.Y += 25; web.Height = webLength * 25; - web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength)); + web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2 + 2, Pos.Y - 25 * webLength)); delay = 0; if (webLength == 4) { @@ -59,7 +59,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters webLength--; _pos.Y -= 25; web.Height = webLength * 25; - web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength)); + web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2 + 2, Pos.Y - 25 * webLength)); delay = 0; if (webLength == 0) { diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs index dba2deb..a0d80a6 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs @@ -16,6 +16,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters int leftBorder; int rightBorder; bool isAttaking = false; + public Zombie(Vector2 position) : base(position) { Width = 72; diff --git a/DangerousD/GameCore/Levels/Level1.cs b/DangerousD/GameCore/Levels/Level1.cs index c3558d9..341cd38 100644 --- a/DangerousD/GameCore/Levels/Level1.cs +++ b/DangerousD/GameCore/Levels/Level1.cs @@ -11,8 +11,8 @@ namespace DangerousD.GameCore.Levels public void InitLevel() { new Player(new Vector2(80,0)); - var Zombie = new Zombie(new Vector2(140, 128)); - var Frank = new Frank(new Vector2(384, 128)); + //var Zombie = new Zombie(new Vector2(140, 128)); + var Frank = new Frank(new Vector2(384, 0)); var Spider = new Spider(new Vector2(112, 0)); var FlameSkull = new FlameSkull(new Vector2(512, 0)); diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index 55d83c2..6cd702d 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -20,9 +20,13 @@ namespace DangerousD.GameCore public PhysicsManager physicsManager; public List players; public List otherObjects = new(); + + public List GetAllGameObjects { get; private set; } public Player GetPlayer1 { get; private set; } public GameManager() { + + GetAllGameObjects = new List(); livingEntities = new List(); mapObjects = new List(); entities = new List(); @@ -34,6 +38,7 @@ namespace DangerousD.GameCore internal void Register(GameObject gameObject) { + GetAllGameObjects.Add(gameObject); if (gameObject is Player) { livingEntities.Add(gameObject as LivingEntity); diff --git a/DangerousD/GameCore/Managers/PhysicsManager.cs b/DangerousD/GameCore/Managers/PhysicsManager.cs index 7ae99f9..bae99da 100644 --- a/DangerousD/GameCore/Managers/PhysicsManager.cs +++ b/DangerousD/GameCore/Managers/PhysicsManager.cs @@ -206,5 +206,21 @@ namespace DangerousD.GameCore.Managers } return null; } + public List CheckRectangle(Rectangle rectangle, Type type) + { + var gameObjects = AppManager.Instance.GameManager.GetAllGameObjects; + List intersected = new List(); + for (int i = 0; i < gameObjects.Count; i++) + { + if (gameObjects[i].GetType() == type) + { + if (gameObjects[i].Rectangle.Intersects(rectangle)) + { + intersected.Add(gameObjects[i]); + } + } + } + return intersected; + } } } \ No newline at end of file