Example #1
0
        private void Update(object sender, EventArgs e)
        {
            this.Text = string.Format("Snake - 점수: {0} {1}단계", score, stage);
            snake.Move(direction);
            if (timeCnt == 83)
            {
                player.controls.stop();
                player.controls.play();
                timeCnt = 0;
            }
            for (int i = 1; i < snake.Body.Length; i++)
            {
                if (snake.Body[0].IntersectsWith(snake.Body[i]))
                {
                    Restart();
                }
            }
            //if (snake.Body[0].X < 0 || snake.Body[0].X > 290)
            //Restart();
            if (snake.Body[0].X <= 0)
            {
                snake.Body[0].X += 300;
            }
            if (snake.Body[0].X >= 300)
            {
                snake.Body[0].X -= 300;
            }
            //if (snake.Body[0].Y < 0 || snake.Body[0].Y > 190)
            //Restart();
            if (snake.Body[0].Y <= 0)
            {
                snake.Body[0].Y += 200;
            }
            if (snake.Body[0].Y >= 200)
            {
                snake.Body[0].Y -= 200;
            }
            if (snake.Body[0].IntersectsWith(food.Piece))
            {
                player1.controls.stop();
                score += 1;
                snake.Grow();
                player1.controls.play();
                if (score % 5 != 0)
                {
                    food.Generate(rand);
                    sFood.Fix();
                }
                else
                {
                    food.Fix();
                    sFood.Generate(rand);
                }
            }
            if (snake.Body[0].IntersectsWith(sFood.Piece))
            {
                player1.controls.stop();
                score += 1;
                player1.controls.play();
                if (stage < 6)
                {
                    gameLoop.Interval -= 10;
                    stage             += 1;
                }
                else
                {
                    gameLoop.Interval -= 1;
                    stage             += 1;
                }
                snake.Grow();
                food.Generate(rand);
                sFood.Fix();
            }

            this.Invalidate();
        }