Some pathfinding stuff, modifications to small enemy

This commit is contained in:
2012-10-05 12:13:37 +02:00
parent e89a657740
commit 0c9e99b146
3 changed files with 21 additions and 9 deletions
@@ -25,7 +25,7 @@ namespace DepthsBelow.Component
{
Transform transform = this.Parent.GetComponent<Transform>();
//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);
}
}
}
+3 -5
View File
@@ -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<PathFinder>().Next();
@@ -101,9 +101,7 @@ namespace DepthsBelow
nextNode = GetComponent<PathFinder>().Next();
}
}
/**/
}*/
}
}
}
+17 -3
View File
@@ -17,6 +17,8 @@ namespace DepthsBelow
public List<Soldier> Squad;
private PathFinder.Node nextNode;
private PathFinder.Node lastNode;
private PathFinder.Node lastLastNode;
public Soldier(Core core, ref List<Soldier> squad) : base(core)
{
@@ -66,11 +68,21 @@ namespace DepthsBelow
{
List<Point> soldierCollisions = new List<Point>();
foreach (var soldier in Squad)
{
if (soldier != this && !soldier.GetComponent<PathFinder>().IsMoving)
{
soldierCollisions.Add(soldier.Transform.Grid);
}
}
foreach (var soldier in Squad)
{
if (soldier != this)
{
if (soldier.Transform.Grid == nextNode.Position)
var pathFinder = soldier.GetComponent<PathFinder>();
var position = nextNode.Position;
if (soldier.Transform.Grid == position)
{
soldierCollisions.Add(soldier.Transform.Grid);
GetComponent<PathFinder>().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<PathFinder>().Next();
}
}
}