Form1
public Form1()
{
InitializeComponent();
new GameSetting();
new GameSetting2();
GameTimer.Interval = 60;
GameTimer.Tick += UpdateScreen;
GameTimer.Start();
startGame();
}
private void UpdateScreen(object sender, EventArgs e)
{
if (GameSetting.Gameover == true || GameSetting2.Gameover2 == true)
{
if (KeyInput.KeyInputs(Keys.Enter))
{
startGame();
}
}
else
{
if (KeyInput.KeyInputs(Keys.Right) && GameSetting.Movment != SnakeMovment.Left)
{
GameSetting.Movment = SnakeMovment.Right;
}
else if (KeyInput.KeyInputs(Keys.Left) && GameSetting.Movment != SnakeMovment.Right)
{
GameSetting.Movment = SnakeMovment.Left;
}
else if (KeyInput.KeyInputs(Keys.Up) && GameSetting.Movment != SnakeMovment.Down)
{
GameSetting.Movment = SnakeMovment.Up;
}
else if (KeyInput.KeyInputs(Keys.Down) && GameSetting.Movment != SnakeMovment.Up)
{
GameSetting.Movment = SnakeMovment.Down;
}
PlayerMovment();
}
private void PlayerMovment()
{
for (int i = SnakeBoddy.Count - 1; i >= 0; i--)
{
if (i == 0)
{
switch (GameSetting.Movment)
{
case SnakeMovment.Right:
SnakeBoddy[i].X++;
break;
case SnakeMovment.Left:
SnakeBoddy[i].X--;
break;
case SnakeMovment.Up:
SnakeBoddy[i].Y--;
break;
case SnakeMovment.Down:
SnakeBoddy[i].Y++;
break;
}
GameSetting
class GameSetting
{
public static int Width { get; set; }
public static int Height { get; set; }
public static int SnakeSpeed { get; set; }
public static int GameScore { get; set; }
public static int GamePoint { get; set; }
public static bool Gameover { get; set; }
public static SnakeMovment Movment { get; set; }
public GameSetting()
{
Height = 16;
Width = 16;
Gameover = false;
SnakeSpeed = 60;
Movment = SnakeMovment.Down;
GamePoint = 1;
GameScore = 0;
}
}
Как бы я сделал так, чтобы скорость змеи была = to SnakeSpeed
. Я могу сделать что-то вроде GameTimer.Interval = 360/GameSetting.SnakeSpeed;
, но это не сработало бы, если у меня больше 1 змеи + Мне кажется, что изменение интервала не является правильным способом, и вместо того, чтобы устанавливать скорость змеи на интервал, как бы я ее установил змею индивидуально?