private void SnakeFrm_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Up && e.KeyCode != Keys.Down && e.KeyCode != Keys.Left && e.KeyCode != Keys.Right) { return; } timer.Start(); if (e.KeyCode == Keys.Up && snake.Direction != SnakePart.PartDirection.DOWN) { newDirection = SnakePart.PartDirection.UP; } else if (e.KeyCode == Keys.Down && snake.Direction != SnakePart.PartDirection.UP) { newDirection = SnakePart.PartDirection.DOWN; } else if (e.KeyCode == Keys.Left && snake.Direction != SnakePart.PartDirection.RIGHT) { newDirection = SnakePart.PartDirection.LEFT; } else if (e.KeyCode == Keys.Right && snake.Direction != SnakePart.PartDirection.LEFT) { newDirection = SnakePart.PartDirection.RIGHT; } }
public void ChangeDirection(SnakePart.PartDirection newDirection) { if (newDirection == Direction) { return; } SnakePart newpart = new SnakePart() { Direction = newDirection, x = FirstPart.x, y = FirstPart.y, color = FirstPart.color }; if (Direction == SnakePart.PartDirection.RIGHT && newpart.Direction == SnakePart.PartDirection.UP) { newpart.MoveSnakePartBack(); } else if (Direction == SnakePart.PartDirection.DOWN && newpart.Direction == SnakePart.PartDirection.LEFT) { newpart.MoveSnakePartBack(); } parts.Insert(0, newpart); }