蛇游戏(褪色食物)

时间:2013-10-23 20:44:26

标签: c# class random timer

我有简单的蛇游戏。有蛇和一种随机食物。但我想要另一种食物,但这种食物会受到时间的限制。例如:当蛇达到20点时,它会产生额外的限时食物。这种食物将显示5秒钟(例如)。我怎么能这样做?

public partial class Form1 : Form
    {
        Random randFood = new Random();

        private had _model;
        Graphics paper;
        had snakes = new had();
        kocky food;
        bool left = false;
        bool right = false;
        bool up = false;
        bool down = false;
        int score = 0;
        kocky1 food1;
        public Form1()
        {
            InitializeComponent();
            food = new kocky(randFood);
            food1 = new kocky1(randFood);  //time limited food//
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            paper = e.Graphics;
            food.drawFood(paper);
            food1.drawFood(paper);         
            snakes.drawSnake(paper);    
        }
//---------------------------program----------------------------------------------------//

 private void timer1_Tick(object sender, EventArgs e)
        {
            snakeScoreLabel.Text = Convert.ToString(score);
            if (down) { snakes.moveDown(); }
            if (up) { snakes.moveUp(); }
            if (right) { snakes.moveRight(); }
            if (left) { snakes.moveLeft(); }
            this.Invalidate();
            collision();
            for (int i = 0; i < snakes.SnakeRec.Length; i++)
            {
                if (snakes.SnakeRec[i].IntersectsWith(food.foodRec))
                {
                    WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
                    wplayer.URL = "C:\\Users\\Boris\\Desktop\\C# had\\SNOTPLOP.wav";
                    wplayer.controls.play(); 
                    timer1.Enabled = true;
                    score += 1;
                    ProgressBar1.Increment(1);
                    snakes.growSnake();
                    food.foodlocation(randFood);
                    food1.foodlocation(randFood);
                }
            if (snakes.SnakeRec[i].IntersectsWith(food1.foodRec))  //time limited food//
                {
                    WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
                    wplayer.URL = "C:\\Users\\Boris\\Desktop\\C# had\\SNOTPLOP.wav";
                    wplayer.controls.play();
                    timer1.Enabled = true;
                    score += 1;
                    ProgressBar1.Increment(1);
                    snakes.growSnake();
                    food.foodlocation(randFood);
                    food1.foodlocation(randFood);
                }

2 个答案:

答案 0 :(得分:1)

你的时间有限的食物可能有一个int持续时间,它会被计时器减少,并在0时删除。

答案 1 :(得分:0)

首先,你要创造的特殊食物叫做“加电”。 你可以创建它的方式。就像你拿着零食块阵列一样,你可以拿着长度为1的食物。

每种食物都有自己的状态:正常,特殊。

创建食物时设置时间戳或其他创建时间指示(如刻度) 然后,当你达到生命秒数时,你可以杀死食物实例并将其从屏幕上移除

相关问题