From 0c9e99b1462ca542744ea1410209af39d40cfeb5 Mon Sep 17 00:00:00 2001 From: Simon Holmberg Date: Fri, 5 Oct 2012 12:13:37 +0200 Subject: [PATCH] Some pathfinding stuff, modifications to small enemy --- .../DepthsBelow/Component/SpriteRenderer.cs | 2 +- DepthsBelow/DepthsBelow/SmallEnemy.cs | 8 +++----- DepthsBelow/DepthsBelow/Soldier.cs | 20 ++++++++++++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs b/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs index e7a2093..59897dd 100644 --- a/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs +++ b/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs @@ -25,7 +25,7 @@ namespace DepthsBelow.Component { Transform transform = this.Parent.GetComponent(); //spriteBatch.Draw(Texture, tc.Position, this.Color); - spriteBatch.Draw(Texture, transform.World.Position + transform.World.Origin, null, Color, transform.World.Rotation, transform.World.Origin, Scale, SpriteEffects, 0); + spriteBatch.Draw(Texture, transform.World.Position + new Vector2(Grid.TileSize / 2, Grid.TileSize / 2), null, Color, transform.World.Rotation, transform.World.Origin, Scale, SpriteEffects, 0); } } } diff --git a/DepthsBelow/DepthsBelow/SmallEnemy.cs b/DepthsBelow/DepthsBelow/SmallEnemy.cs index 03b5313..11e72fe 100644 --- a/DepthsBelow/DepthsBelow/SmallEnemy.cs +++ b/DepthsBelow/DepthsBelow/SmallEnemy.cs @@ -26,7 +26,7 @@ namespace DepthsBelow this.Swarm = swarm; - Transform.World.Origin = new Vector2(16, 16); + Transform.World.Origin = new Vector2(20, 16); this.Color = Color.White; var rc = new SpriteRenderer(this) { Texture = Texture, Color = Color.White }; @@ -58,7 +58,7 @@ namespace DepthsBelow { base.Update(gameTime); - float elapsed = gameTime.ElapsedGameTime.Milliseconds / 1000.0f; + /*float elapsed = gameTime.ElapsedGameTime.Milliseconds / 1000.0f; if (nextNode == null) nextNode = GetComponent().Next(); @@ -101,9 +101,7 @@ namespace DepthsBelow nextNode = GetComponent().Next(); } - } - - /**/ + }*/ } } } \ No newline at end of file diff --git a/DepthsBelow/DepthsBelow/Soldier.cs b/DepthsBelow/DepthsBelow/Soldier.cs index 336e7c6..2a22f9f 100644 --- a/DepthsBelow/DepthsBelow/Soldier.cs +++ b/DepthsBelow/DepthsBelow/Soldier.cs @@ -17,6 +17,8 @@ namespace DepthsBelow public List Squad; private PathFinder.Node nextNode; + private PathFinder.Node lastNode; + private PathFinder.Node lastLastNode; public Soldier(Core core, ref List squad) : base(core) { @@ -66,11 +68,21 @@ namespace DepthsBelow { List soldierCollisions = new List(); + foreach (var soldier in Squad) + { + if (soldier != this && !soldier.GetComponent().IsMoving) + { + soldierCollisions.Add(soldier.Transform.Grid); + } + } + foreach (var soldier in Squad) { if (soldier != this) { - if (soldier.Transform.Grid == nextNode.Position) + var pathFinder = soldier.GetComponent(); + var position = nextNode.Position; + if (soldier.Transform.Grid == position) { soldierCollisions.Add(soldier.Transform.Grid); GetComponent().RecreatePath(soldierCollisions); @@ -80,8 +92,6 @@ namespace DepthsBelow } } - - if (nextNode != null) { var nodeWorldPos = Grid.GridToWorld(nextNode.Position); @@ -97,7 +107,11 @@ namespace DepthsBelow Transform.World.Y -= speed; if (Transform.World == nodeWorldPos) + { + lastLastNode = lastNode; + lastNode = nextNode; nextNode = GetComponent().Next(); + } } }