【问题标题】:Snake game (fading food)蛇游戏(褪色食物)
【发布时间】:2014-06-05 19:00:40
【问题描述】:

我有简单的蛇游戏。有蛇和一种随机食物。但是我想要另一种食物,但是这种食物会受到时间限制。例如:当蛇达到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);
                }

【问题讨论】:

  • “我该怎么做?” - 你被困在哪里了?
  • 如果我是你,我会做的第一件事就是真正尝试自己解决问题。仔细考虑你想要发生的事情,然后在编辑器中添加一些代码来尝试实现这些目标。如果它不起作用,那么来SO并发布一个问题,其中包含不起作用的代码,以及您期望它做什么。

标签: c# class random timer


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    首先你要制作的特殊食物叫做“Power up”。 你可以创建这个的方式。只要你拿着零食块阵列,你就可以拿着长度为 1 的食物阵列

    每种食物都有自己的状态:普通、特殊。

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

    【讨论】:

      猜你喜欢
      • 2014-01-31
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      相关资源
      最近更新 更多