Merge branch 'master' of manuel-voegele.de:inf3
This commit is contained in:
@@ -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 |
Reference in New Issue
Block a user