Merge branch 'master' of manuel-voegele.de:inf3

This commit is contained in:
Wafa Sadri
2014-05-08 22:03:29 +02:00
4 changed files with 20 additions and 13 deletions

View File

@@ -20,8 +20,10 @@ namespace WorldOfPeacecraft
private Image Knight; private Image Knight;
private Image Walkable; private Image Walkable;
private Image Water; private Image Water;
private Dictionary<int, int> dragonImageMappings = new Dictionary<int, int>(); private Image Wall;
private Image Flowers;
private Random random = new Random (); private Random random = new Random ();
private int FlowerCounter;
public MapPanel (IBackend backend) public MapPanel (IBackend backend)
{ {
@@ -36,6 +38,8 @@ namespace WorldOfPeacecraft
Knight = Image.FromFile (ImagesFolder + "knight.png"); Knight = Image.FromFile (ImagesFolder + "knight.png");
Walkable = Image.FromFile (ImagesFolder + "walkable.jpg"); Walkable = Image.FromFile (ImagesFolder + "walkable.jpg");
Water = Image.FromFile (ImagesFolder + "water.jpg"); Water = Image.FromFile (ImagesFolder + "water.jpg");
Wall = Image.FromFile(ImagesFolder + "wall.jpg");
Flowers = Image.FromFile(ImagesFolder + "flowers.png");
} }
protected override void OnLayout (LayoutEventArgs levent) protected override void OnLayout (LayoutEventArgs levent)
@@ -89,6 +93,7 @@ namespace WorldOfPeacecraft
{ {
ITile[,] map = Backend.GetMap (); ITile[,] map = Backend.GetMap ();
if (map != null) { if (map != null) {
FlowerCounter = 0;
for (int y = 0; y < map.GetLength(1); y++) { for (int y = 0; y < map.GetLength(1); y++) {
for (int x = 0; x < map.GetLength(0); x++) { for (int x = 0; x < map.GetLength(0); x++) {
int posx = x * TileSize; int posx = x * TileSize;
@@ -107,8 +112,9 @@ namespace WorldOfPeacecraft
Image image = null; Image image = null;
if (tile.IsWater ()) { if (tile.IsWater ()) {
image = Water; image = Water;
} } else if (tile.IsWall ()) {
else { image = Wall;
} else {
image = Walkable; image = Walkable;
} }
if (image != null) { if (image != null) {
@@ -116,11 +122,16 @@ namespace WorldOfPeacecraft
} else { } else {
g.FillRectangle (new SolidBrush (Color.Red), x, y, TileSize, TileSize); g.FillRectangle (new SolidBrush (Color.Red), x, y, TileSize, TileSize);
} }
if (tile.IsWall ()) {
g.FillEllipse(new SolidBrush(Color.Gray), x + 3, y + 3, TileSize - 6 , TileSize - 6);
}
if (tile.IsForest ()) { if (tile.IsForest ()) {
PaintImage (g, x, y, Forest); PaintImage (g, x, y, Forest);
} else if (tile.IsWalkable()) {
if (FlowerCounter == 4) {
PaintImage (g, x, y, Flowers);
FlowerCounter = 0;
}
else {
FlowerCounter++;
}
} }
if (tile.IsHuntable ()) { if (tile.IsHuntable ()) {
PaintImage (g, x, y, BowAndArrow); PaintImage (g, x, y, BowAndArrow);
@@ -133,12 +144,8 @@ namespace WorldOfPeacecraft
IEnumerable<IEntity> players = Backend.GetPlayers (); IEnumerable<IEntity> players = Backend.GetPlayers ();
foreach (IEntity dragon in dragons) { foreach (IEntity dragon in dragons) {
int id = dragon.GetId(); int id = dragon.GetId();
if (!dragonImageMappings.ContainsKey(id))
{
dragonImageMappings[id] = random.Next (3);
}
Image image; Image image;
switch (dragonImageMappings[id]) switch (Math.Abs(id % 3))
{ {
case 0: case 0:
image = Dragon1; image = Dragon1;
@@ -150,7 +157,7 @@ namespace WorldOfPeacecraft
image = Dragon3; image = Dragon3;
break; break;
default: default:
throw new Exception("dragonImageMapping '" + dragonImageMappings[id] + "' doesn't exist"); throw new Exception("There is no image for dragon id '" + id + "' (this should never happen)");
} }
PaintImage(g, dragon.GetX() * TileSize, dragon.GetY() * TileSize, image); PaintImage(g, dragon.GetX() * TileSize, dragon.GetY() * TileSize, image);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB