forked from s425077/PotatoPlan
damnbroken
This commit is contained in:
parent
8db46409f1
commit
54205f0d7f
@ -34,7 +34,7 @@ namespace Game1
|
|||||||
|
|
||||||
|
|
||||||
//Generates the map with some random values
|
//Generates the map with some random values
|
||||||
input.init(graphics, new Vector2(16,16), 56, 1); //Generates the starting size
|
input.init(graphics, new Vector2(8,8), 56, 1); //Generates the starting size
|
||||||
houseUnit.init(input.getTileSize(), input.getSpacing()); //Generates the house position
|
houseUnit.init(input.getTileSize(), input.getSpacing()); //Generates the house position
|
||||||
tractorUnit.init(houseUnit.GetRectangle(), input); //Generates the Tractor
|
tractorUnit.init(houseUnit.GetRectangle(), input); //Generates the Tractor
|
||||||
tractorUnit.updateSizing(input, 0, houseUnit.getVector()); //Updates the first Size of the Tractor
|
tractorUnit.updateSizing(input, 0, houseUnit.getVector()); //Updates the first Size of the Tractor
|
||||||
@ -106,10 +106,10 @@ namespace Game1
|
|||||||
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getByIndex(i).getCords().X * (input.getSpacingTile()) + input.getTileSize() / 4, (int)tractorUnit.getPath().getByIndex(i).getCords().Y * (input.getSpacingTile()) + input.getTileSize() / 4, input.getTileSize()/2, input.getTileSize()/2), Color.Green);
|
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getByIndex(i).getCords().X * (input.getSpacingTile()) + input.getTileSize() / 4, (int)tractorUnit.getPath().getByIndex(i).getCords().Y * (input.getSpacingTile()) + input.getTileSize() / 4, input.getTileSize()/2, input.getTileSize()/2), Color.Green);
|
||||||
}
|
}
|
||||||
|
|
||||||
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getFinalDest().getCords().X * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), (int)tractorUnit.getPath().getFinalDest().getCords().Y * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), Convert.ToInt32(input.getTileSize()/1.5), Convert.ToInt32(input.getTileSize()/1.5)) , Color.Red); //Draws the current target of the tractor
|
|
||||||
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPos().X, (int)tractorUnit.getPos().Y, input.getTileSize(), input.getTileSize()), Color.White);
|
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPos().X, (int)tractorUnit.getPos().Y, input.getTileSize(), input.getTileSize()), Color.White);
|
||||||
spriteBatch.Draw(house, houseUnit.GetRectangle(), Color.White);
|
spriteBatch.Draw(house, houseUnit.GetRectangle(), Color.White);
|
||||||
spriteBatch.DrawString(Bold, "Speed:" + tractorUnit.getSpeed().ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20) , Color.White); //Draws the speed value
|
spriteBatch.DrawString(Bold, "Speed:" + tractorUnit.getSpeed().ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20) , Color.White); //Draws the speed value
|
||||||
|
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getFinalDest().getCords().X * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), (int)tractorUnit.getPath().getFinalDest().getCords().Y * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), Convert.ToInt32(input.getTileSize() / 1.5), Convert.ToInt32(input.getTileSize() / 1.5)), Color.Red); //Draws the current target of the tractor
|
||||||
spriteBatch.DrawString(Bold, "Tractor Speed:" + tractorUnit.getTractorSpeed().ToString(), new Vector2(100, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20), Color.White);
|
spriteBatch.DrawString(Bold, "Tractor Speed:" + tractorUnit.getTractorSpeed().ToString(), new Vector2(100, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20), Color.White);
|
||||||
spriteBatch.DrawString(Bold, "Tile Size:" + input.getTileSize().ToString() + "pix", new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 40), Color.White); //Draws the tile size
|
spriteBatch.DrawString(Bold, "Tile Size:" + input.getTileSize().ToString() + "pix", new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 40), Color.White); //Draws the tile size
|
||||||
spriteBatch.DrawString(Bold, "Matrix Size: " + input.getSize().X.ToString() + " X " + input.getSize().Y.ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 60), Color.White);
|
spriteBatch.DrawString(Bold, "Matrix Size: " + input.getSize().X.ToString() + " X " + input.getSize().Y.ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 60), Color.White);
|
||||||
|
@ -37,15 +37,15 @@ class Crops
|
|||||||
}
|
}
|
||||||
else if (Status == 2)
|
else if (Status == 2)
|
||||||
{
|
{
|
||||||
return 2;
|
return 20;
|
||||||
}
|
}
|
||||||
else if (Status == 3)
|
else if (Status == 3)
|
||||||
{
|
{
|
||||||
return 3;
|
return 30;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 4;
|
return 40;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,10 @@ class Farm
|
|||||||
{
|
{
|
||||||
x = r.Next(0, 2);
|
x = r.Next(0, 2);
|
||||||
}
|
}
|
||||||
|
if (x == 2)
|
||||||
|
{
|
||||||
|
x = r.Next(1, 3);
|
||||||
|
}
|
||||||
crops[i, j] = new Crops();
|
crops[i, j] = new Crops();
|
||||||
crops[i, j].Status = x;
|
crops[i, j].Status = x;
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ class Astar
|
|||||||
adjacentNodes.Remove(adjacentNodes[i]);
|
adjacentNodes.Remove(adjacentNodes[i]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (adjacentNodes[i].getCords().X > Size.X || adjacentNodes[i].getCords().Y > Size.Y)
|
if (adjacentNodes[i].getCords().X > Size.X - 1 || adjacentNodes[i].getCords().Y > Size.Y - 1)
|
||||||
adjacentNodes.Remove(adjacentNodes[i]);
|
adjacentNodes.Remove(adjacentNodes[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,21 +77,24 @@ class Astar
|
|||||||
while (openList.Count > 0)
|
while (openList.Count > 0)
|
||||||
{
|
{
|
||||||
current = openList.Peek();
|
current = openList.Peek();
|
||||||
|
//g = current.getG();
|
||||||
closedList.Enqueue(current);
|
closedList.Enqueue(current);
|
||||||
openList.Dequeue();
|
openList.Dequeue();
|
||||||
|
|
||||||
if (closedList.Peek().getCords() == target.getCords())
|
if (closedList.Exists(target.getCords()))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
var adjacentNodes = GetAdjacentNodes(current.getCords());
|
var adjacentNodes = GetAdjacentNodes(current.getCords());
|
||||||
g++;
|
//g++;
|
||||||
|
|
||||||
foreach(var adjacentNode in adjacentNodes)
|
foreach(var adjacentNode in adjacentNodes)
|
||||||
{
|
{
|
||||||
|
g = g + crops[(int)adjacentNode.getCords().X, (int)adjacentNode.getCords().Y].getCostOnMovement();
|
||||||
if (closedList.Exists(adjacentNode.getCords()))
|
if (closedList.Exists(adjacentNode.getCords()))
|
||||||
continue;
|
continue;
|
||||||
if (!(openList.Exists(adjacentNode.getCords())))
|
if (!(openList.Exists(adjacentNode.getCords())))
|
||||||
{
|
{
|
||||||
|
|
||||||
adjacentNode.setG(g);
|
adjacentNode.setG(g);
|
||||||
adjacentNode.setH(ComputeHScore(adjacentNode.getCords(), target.getCords()));
|
adjacentNode.setH(ComputeHScore(adjacentNode.getCords(), target.getCords()));
|
||||||
adjacentNode.calculateF();
|
adjacentNode.calculateF();
|
||||||
@ -115,7 +118,9 @@ class Astar
|
|||||||
path.AddNode(current);
|
path.AddNode(current);
|
||||||
current = current.getParent();
|
current = current.getParent();
|
||||||
}
|
}
|
||||||
path.FlipArray();
|
path = path.FlipArray();
|
||||||
|
openList.Clear();
|
||||||
|
closedList.Clear();
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,15 +31,19 @@ class Path
|
|||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FlipArray()
|
public Path FlipArray()
|
||||||
{
|
{
|
||||||
int j = Count;
|
int j = Count;
|
||||||
Nodes[] tempp = nodes;
|
Nodes[] tempp = nodes;
|
||||||
|
Nodes[] newnode = new Nodes[Count];
|
||||||
|
Path newPath = new Path();
|
||||||
for (int i = 0; i < Count; i++)
|
for (int i = 0; i < Count; i++)
|
||||||
{
|
{
|
||||||
nodes[i] = tempp[j - 1];
|
newnode[i] = tempp[j - 1];
|
||||||
j--;
|
j--;
|
||||||
|
newPath.AddNode(newnode[i]);
|
||||||
}
|
}
|
||||||
|
return newPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Nodes getFinalDest()
|
public Nodes getFinalDest()
|
||||||
|
@ -41,7 +41,7 @@ class PriorityQueue
|
|||||||
{
|
{
|
||||||
Nodes min = Peek();
|
Nodes min = Peek();
|
||||||
Nodes root = list[Count - 1];
|
Nodes root = list[Count - 1];
|
||||||
list.RemoveAt(0);
|
list.RemoveAt(Count - 1);
|
||||||
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user