Пример #1
0
        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;
            }
        }
Пример #2
0
        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);
        }