SnakeGame/SnakeGame/GameRenderer.cs

70 lines
2.8 KiB
C#
Raw Normal View History

2017-01-07 23:09:43 +01:00
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SnakeGame
{
public static class GameRenderer
{
public static Panel Panel;
2017-01-07 23:18:03 +01:00
//private static Timer timer = new Timer();
2017-01-07 23:09:43 +01:00
public static void Render()
{
2017-01-07 23:14:03 +01:00
//foreach(var coord in Game.GameField)
2017-01-07 23:18:03 +01:00
/*if (timer.Enabled)
return;
else
{
timer.Interval = 1;
timer.ClearEventInvocations("Tick");
timer.Tick += delegate
{
timer.Stop();*/
2017-01-07 23:14:03 +01:00
for (int i = 0; i < Game.GameField.GetLength(0); i++)
2017-01-07 23:09:43 +01:00
{
2017-01-07 23:14:03 +01:00
for (int j = 0; j < Game.GameField.GetLength(1); j++)
{
//if (coord.Tick == -1)
2017-01-07 23:15:15 +01:00
//if (Game.GameField[i, j].Tick == -1)
if (Game.GameField[i, j].Tick == 0)
RenderSquare(new Point { X = i, Y = j }, Color.Black);
else if (Game.GameField[i, j].Type == SquareType.Wall)
RenderSquare(new Point { X = i, Y = j }, Color.Red);
else if (Game.GameField[i, j].Type == SquareType.Player)
2017-01-07 23:18:03 +01:00
if (Network.ConnectedMatch == null)
2017-01-07 23:20:57 +01:00
RenderSquare(new Point { X = i, Y = j }, Color.LimeGreen);
2017-01-07 23:18:03 +01:00
else
2017-01-07 23:21:48 +01:00
{
2017-01-07 23:24:42 +01:00
if (Game.GameField[i, j].PlayerName == Game.Player.Name)
RenderSquare(new Point { X = i, Y = j }, Game.Player.Color);
2017-01-07 23:21:48 +01:00
else
2017-01-07 23:24:42 +01:00
{
Player player = Network.ConnectedMatch.GetPlayerByName(Game.GameField[i, j].PlayerName);
if (player != null)
RenderSquare(new Point { X = i, Y = j }, player.Color);
else
RenderSquare(new Point { X = i, Y = j }, Color.DarkGray);
}
2017-01-07 23:21:48 +01:00
}
2017-01-07 23:15:15 +01:00
else if (Game.GameField[i, j].Type == SquareType.Point)
RenderSquare(new Point { X = i, Y = j }, Color.Blue);
2017-01-07 23:14:03 +01:00
else
2017-01-07 23:15:15 +01:00
RenderSquare(new Point { X = i, Y = j }, Color.Gray);
2017-01-07 23:14:03 +01:00
}
2017-01-07 23:09:43 +01:00
}
2017-01-07 23:18:03 +01:00
/* };
timer.Start();
}*/
2017-01-07 23:09:43 +01:00
}
2017-01-07 23:15:15 +01:00
private static void RenderSquare(Point coord, Color color)
2017-01-07 23:09:43 +01:00
{
Graphics gr = Panel.CreateGraphics();
2017-01-07 23:14:03 +01:00
gr.FillRectangle(new SolidBrush(color), SquareCoord.SqCoordToRect(coord, Panel.Size));
2017-01-07 23:09:43 +01:00
}
}
}