首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C64加载屏

C64加载屏
EN

Code Review用户
提问于 2016-01-10 17:07:11
回答 1查看 138关注 0票数 1

我做了一个加载屏幕(启动屏幕) 就像以前的C64。我使用了一系列的图片框,只是改变颜色的图像使用一个定时器和一个案例陈述。

代码语言:javascript
运行
复制
namespace c64
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
            timer2.Start();
            timer3.Start();

        }

        private void timer1_Tick(object sender, EventArgs e)
        {

            Random rnd = new Random();
            int a = rnd.Next(1,8);
            int b = rnd.Next(1,8);
            int c = rnd.Next(1,8);
            int d= rnd.Next(1,8);
            int n= rnd.Next(1,8);
            int f= rnd.Next(1,8);
            int g= rnd.Next(1,8);
            int h = rnd.Next(1, 8);

            switch (a)
            {
                case 1: 
                pictureBox1.Image = Properties.Resources.image1;
                pictureBox8.Image = Properties.Resources.image1;
                pictureBox10.Image = Properties.Resources.image1;
                    pictureBox2.Image = Properties.Resources.image1;
                    pictureBox11.Image = Properties.Resources.image1;
                    pictureBox9.Image = Properties.Resources.image1;
                break;
                case 2:
                pictureBox1.Image = Properties.Resources.image2;
                pictureBox8.Image = Properties.Resources.image2;
                pictureBox10.Image = Properties.Resources.image2;
                break;
                case 3:
                pictureBox1.Image = Properties.Resources.image3;
                pictureBox8.Image = Properties.Resources.image3;
                pictureBox10.Image = Properties.Resources.image3;
                break;
                case 4:
                pictureBox1.Image = Properties.Resources.image4;
                pictureBox8.Image = Properties.Resources.image4;
                break;
                case 5:
                pictureBox1.Image = Properties.Resources.image5;
                pictureBox8.Image = Properties.Resources.image5;
                break;
                case 6:
                pictureBox1.Image = Properties.Resources.image6;
                pictureBox8.Image = Properties.Resources.image6;
                break;
                case 7:
                pictureBox1.Image = Properties.Resources.image7;
                pictureBox8.Image = Properties.Resources.image7;
                break;
                case 8:
                pictureBox1.Image = Properties.Resources.image8;
                pictureBox8.Image = Properties.Resources.image8;
                break;
            }

            switch (b)
            {
                case 1:
                    pictureBox2.Image = Properties.Resources.image1;
                    pictureBox11.Image = Properties.Resources.image1;
                    pictureBox9.Image = Properties.Resources.image1;
                    break;
                case 2:
                    pictureBox2.Image = Properties.Resources.image2;
                    pictureBox9.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox2.Image = Properties.Resources.image3;
                    pictureBox11.Image = Properties.Resources.image3;
                    pictureBox9.Image = Properties.Resources.image3;
                    pictureBox18.Image = Properties.Resources.image3;
                    pictureBox18.Image = Properties.Resources.image4;
                    break;
                case 4:
                    pictureBox2.Image = Properties.Resources.image4;
                    pictureBox9.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox2.Image = Properties.Resources.image5;
                    pictureBox9.Image = Properties.Resources.image5;
                    break;
                case 6:
                    pictureBox2.Image = Properties.Resources.image6;
                    pictureBox9.Image = Properties.Resources.image6;
                    pictureBox12.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox2.Image = Properties.Resources.image7;
                    pictureBox9.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox2.Image = Properties.Resources.image8;
                    pictureBox9.Image = Properties.Resources.image8;
                    break;
            }

            switch (c)
            {
                case 1:
                    pictureBox3.Image = Properties.Resources.image1;
                    pictureBox13.Image = Properties.Resources.image1;
                    break;
                case 2:
                    pictureBox3.Image = Properties.Resources.image2;
                    pictureBox13.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox3.Image = Properties.Resources.image3;
                    break;
                case 4:
                    pictureBox3.Image = Properties.Resources.image4;
                    pictureBox1.Image = Properties.Resources.image2;
                pictureBox8.Image = Properties.Resources.image2;
                pictureBox10.Image = Properties.Resources.image2;
                    break;
                case 5:
                    pictureBox3.Image = Properties.Resources.image5;
                    pictureBox18.Image = Properties.Resources.image1;
                    pictureBox18.Image = Properties.Resources.image1;
                    pictureBox17.Image = Properties.Resources.image2;
                    break;
                case 6:
                    pictureBox3.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox3.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox3.Image = Properties.Resources.image8;
                    break;
            }

            switch (d)
            {
                case 1:
                    pictureBox4.Image = Properties.Resources.image1;
                    pictureBox14.Image = Properties.Resources.image1;
                    pictureBox17.Image = Properties.Resources.image2;
                pictureBox8.Image = Properties.Resources.image2;
                pictureBox10.Image = Properties.Resources.image2;
                    break;
                case 2:
                    pictureBox4.Image = Properties.Resources.image2;
                    pictureBox18.Image = Properties.Resources.image2;
                    pictureBox18.Image = Properties.Resources.image3;
                    break;
                case 3:
                    pictureBox4.Image = Properties.Resources.image3;
                    pictureBox17.Image = Properties.Resources.image5;
                    pictureBox18.Image = Properties.Resources.image8;
                    pictureBox18.Image = Properties.Resources.image7;
                    break;
                case 4:
                    pictureBox4.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox4.Image = Properties.Resources.image5;
                    pictureBox14.Image = Properties.Resources.image5;


                    break;
                case 6:
                    pictureBox4.Image = Properties.Resources.image6;
                    pictureBox17.Image = Properties.Resources.image7;
                    break;
                case 7:
                    pictureBox4.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox4.Image = Properties.Resources.image8;
                    break;
            }

            switch (n)
            {
                case 1:
                    pictureBox5.Image = Properties.Resources.image1;
                    pictureBox15.Image = Properties.Resources.image5;
                    break;
                case 2:
                    pictureBox5.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox5.Image = Properties.Resources.image3;
                    pictureBox15.Image = Properties.Resources.image3;
                    break;
                case 4:
                    pictureBox5.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox5.Image = Properties.Resources.image5;
                    break;
                case 6:
                    pictureBox5.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox5.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox5.Image = Properties.Resources.image8;
                    break;
            }

            switch (f)
            {
                case 1:
                    pictureBox5.Image = Properties.Resources.image1;
                    pictureBox16.Image = Properties.Resources.image3;
                    break;
                case 2:
                    pictureBox5.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox5.Image = Properties.Resources.image3;
                    break;
                case 4:
                    pictureBox5.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox5.Image = Properties.Resources.image5;
                    break;
                case 6:
                    pictureBox5.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox5.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox5.Image = Properties.Resources.image8;
                    break;
            }
            switch (g)
            {
                case 1:
                    pictureBox6.Image = Properties.Resources.image1;
                    break;
                case 2:
                    pictureBox6.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox6.Image = Properties.Resources.image3;
                    break;
                case 4:
                    pictureBox6.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox6.Image = Properties.Resources.image5;
                    break;
                case 6:
                    pictureBox6.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox6.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox6.Image = Properties.Resources.image8;
                    break;
            }
            switch (h)
            {
                case 1:
                    pictureBox7.Image = Properties.Resources.image1;
                    break;
                case 2:
                    pictureBox7.Image = Properties.Resources.image2;
                    break;
                case 3:
                    pictureBox7.Image = Properties.Resources.image3;
                    break;
                case 4:
                    pictureBox7.Image = Properties.Resources.image4;
                    break;
                case 5:
                    pictureBox7.Image = Properties.Resources.image5;
                    break;
                case 6:
                    pictureBox7.Image = Properties.Resources.image6;
                    break;
                case 7:
                    pictureBox7.Image = Properties.Resources.image7;
                    break;
                case 8:
                    pictureBox7.Image = Properties.Resources.image8;
                    break;
            }

        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            pictureBox21.Visible = true;

        }

        private void timer3_Tick(object sender, EventArgs e)
        {
            pictureBox21.Visible = false;
        }
    }
}

有没有更有效的方法来达到这个效果?

EN

回答 1

Code Review用户

回答已采纳

发布于 2016-01-11 14:59:11

这里有很多代码复制.我建议将switch语句重构为一个方法。

我假设有20个PictureBox对象,您希望在每个对象上随机化所显示的图像,因为您提供的代码有点奇怪(例如,pictureBox11.Image只得到分配的Properties.Resources.image1image3,有时在case中为相同的pictureBox分配多个赋值)

代码语言:javascript
运行
复制
namespace c64 {
    public partial class Form1 : Form {
        private Random rng;
        private const Image[] Images = new Image[]{
            Properties.Resources.image1,
            Properties.Resources.image2,
            Properties.Resources.image3,
            Properties.Resources.image4,
            Properties.Resources.image5,
            Properties.Resources.image6,
            Properties.Resources.image7,
            Properties.Resources.image8
        };

        public Form1() {
            InitializeComponents();
            rng = new Random();
        }

        private void RandomizeImage(PictureBox pictureBox) {
            int index = rng.Next(0, Images.Length - 1);
            pictureBox.Image = Images[index];
        }

        private void timer1_Tick(object sender, EventArgs e) {
            RandomizeImage(pictureBox1);
            RandomizeImage(pictureBox2);
            RandomizeImage(pictureBox3);
            RandomizeImage(pictureBox4);
            RandomizeImage(pictureBox5);
            RandomizeImage(pictureBox6);
            RandomizeImage(pictureBox7);
            RandomizeImage(pictureBox8);
            RandomizeImage(pictureBox9);
            RandomizeImage(pictureBox10);
            RandomizeImage(pictureBox11);
            RandomizeImage(pictureBox12);
            RandomizeImage(pictureBox13);
            RandomizeImage(pictureBox14);
            RandomizeImage(pictureBox15);
            RandomizeImage(pictureBox16);
            RandomizeImage(pictureBox17);
            RandomizeImage(pictureBox18);
            RandomizeImage(pictureBox19);
            RandomizeImage(pictureBox20);
        }

        // rest of your code ...
    }
}

当然,您可以将这些pictureBoxX (X =1至20)打包到它们自己的数组中,并在循环中对它们进行迭代。

票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/116359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档