C#版2048---小圆脸图片版(游戏主界面)

来源:互联网 发布:淘宝新店销量为0能买吗 编辑:程序博客网 时间:2024/04/28 08:13

游戏主窗体如图片所示,右上角两个自定义按钮。标注的区域1,设计时为空白,在游戏开始时,创建4个包含4个pictureBox的list,即16个pictureBox。创建一个4*4的二维数组aMap[4,4],所有元素赋值为0,将此二维数组的每个元素都与每个list的pictureBox相对应,当aMap[x,y]的值分别为0,2,4,8…8192时让pictureBox设置不同的图片,然后游戏时每走一步都根据aMap[x,y]的值对不同的pictureBox设置图片。标准的区域2是5个label,左边一个显示2048,右边分别是两个label显示分数,两个label显示最高分。

初始化地图如下:

DirectoryInfo dir = new DirectoryInfo(Application.StartupPath).Parent;        public string target;          List<PictureBox> list_1 = new List<PictureBox>();//4个含4个pictureBox的list来对应16个小格子        List<PictureBox> list_2 = new List<PictureBox>();        List<PictureBox> list_3 = new List<PictureBox>();        List<PictureBox> list_4 = new List<PictureBox>();        PictureBox pb01 = new PictureBox();        PictureBox pb02 = new PictureBox();        PictureBox pb03 = new PictureBox();        PictureBox pb04 = new PictureBox();        PictureBox pb05 = new PictureBox();        PictureBox pb06 = new PictureBox();        PictureBox pb07 = new PictureBox();        PictureBox pb08 = new PictureBox();        PictureBox pb09 = new PictureBox();        PictureBox pb10 = new PictureBox();        PictureBox pb11 = new PictureBox();        PictureBox pb12 = new PictureBox();        PictureBox pb13 = new PictureBox();        PictureBox pb14 = new PictureBox();        PictureBox pb15 = new PictureBox();        PictureBox pb16 = new PictureBox();
 public void initialMap()        {            target = dir.FullName;            list_1.AddRange(new[] { pb01, pb02, pb03, pb04 });            int x=list_1.Count;            for (int i = 0; i < list_1.Count; i++)            {                list_1[i].SizeMode = PictureBoxSizeMode.StretchImage;                list_1[i].Size = new Size(100, 100);                list_1[i].Location = new Point(30+i * 105, 155);                list_1[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                this.Controls.Add(list_1[i]);            }            list_2.AddRange(new[] { pb05, pb06, pb07, pb08 });            for (int i = 0; i < list_2.Count; i++)            {                list_2[i].SizeMode = PictureBoxSizeMode.StretchImage;                list_2[i].Size = new Size(100, 100);                list_2[i].Location = new Point(30+i * 105, 260);                list_2[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                this.Controls.Add(list_2[i]);            }            list_3.AddRange(new[] { pb09, pb10, pb11, pb12 });            for (int i = 0; i < list_3.Count; i++)            {                list_3[i].SizeMode = PictureBoxSizeMode.StretchImage;                list_3[i].Size = new Size(100, 100);                list_3[i].Location = new Point(30+i * 105, 365);                list_3[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                this.Controls.Add(list_3[i]);            }            list_4.AddRange(new[] { pb13, pb14, pb15, pb16 });            for (int i = 0; i < list_4.Count; i++)            {                list_4[i].SizeMode = PictureBoxSizeMode.StretchImage;                list_4[i].Size = new Size(100, 100);                list_4[i].Location = new Point(30+i * 105, 470);                list_4[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                this.Controls.Add(list_4[i]);            }

绘制地图:

public void drawMap()        {            target = dir.FullName;                                for (int i = 0; i < 4; i++)            {                switch (newGame.iMap[0, i])                {                    case 0:                        list_1[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                        break;                    case 2:                        list_1[i].Image = Image.FromFile(target + @"\Resources\2.jpg");                        break;                    case 4:                        list_1[i].Image = Image.FromFile(target + @"\Resources\4.jpg");                        break;                    case 8:                        list_1[i].Image = Image.FromFile(target + @"\Resources\8.jpg");                        break;                    case 16:                        list_1[i].Image = Image.FromFile(target + @"\Resources\16.jpg");                        break;                    case 32:                        list_1[i].Image = Image.FromFile(target + @"\Resources\32.jpg");                        break;                    case 64:                        list_1[i].Image = Image.FromFile(target + @"\Resources\64.jpg");                        break;                    case 128:                        list_1[i].Image = Image.FromFile(target + @"\Resources\128.jpg");                        break;                    case 256:                        list_1[i].Image = Image.FromFile(target + @"\Resources\256.jpg");                        break;                    case 512:                        list_1[i].Image = Image.FromFile(target + @"\Resources\512.jpg");                        break;                    case 1024:                        list_1[i].Image = Image.FromFile(target + @"\Resources\1024.jpg");                        break;                    case 2048:                        list_1[i].Image = Image.FromFile(target + @"\Resources\2048.jpg");                        break;                    case 4096:                        list_1[i].Image = Image.FromFile(target + @"\Resources\4096.jpg");                        break;                    case 8192:                        list_1[i].Image = Image.FromFile(target + @"\Resources\8192.jpg");                        break;                }                switch (newGame.iMap[1, i])                {                    case 0:                        list_2[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                        break;                    case 2:                        list_2[i].Image = Image.FromFile(target + @"\Resources\2.jpg");                        break;                    case 4:                        list_2[i].Image = Image.FromFile(target + @"\Resources\4.jpg");                        break;                    case 8:                        list_2[i].Image = Image.FromFile(target + @"\Resources\8.jpg");                        break;                    case 16:                        list_2[i].Image = Image.FromFile(target + @"\Resources\16.jpg");                        break;                    case 32:                        list_2[i].Image = Image.FromFile(target + @"\Resources\32.jpg");                        break;                    case 64:                        list_2[i].Image = Image.FromFile(target + @"\Resources\64.jpg");                        break;                    case 128:                        list_2[i].Image = Image.FromFile(target + @"\Resources\128.jpg");                        break;                    case 256:                        list_2[i].Image = Image.FromFile(target + @"\Resources\256.jpg");                        break;                    case 512:                        list_2[i].Image = Image.FromFile(target + @"\Resources\512.jpg");                        break;                    case 1024:                        list_2[i].Image = Image.FromFile(target + @"\Resources\1024.jpg");                        break;                    case 2048:                        list_2[i].Image = Image.FromFile(target + @"\Resources\2048.jpg");                        break;                    case 4096:                        list_2[i].Image = Image.FromFile(target + @"\Resources\4096.jpg");                        break;                    case 8192:                        list_2[i].Image = Image.FromFile(target + @"\Resources\8192.jpg");                        break;                }                switch (newGame.iMap[2, i])                {                    case 0:                        list_3[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                        break;                    case 2:                        list_3[i].Image = Image.FromFile(target + @"\Resources\2.jpg");                        break;                    case 4:                        list_3[i].Image = Image.FromFile(target + @"\Resources\4.jpg");                        break;                    case 8:                        list_3[i].Image = Image.FromFile(target + @"\Resources\8.jpg");                        break;                    case 16:                        list_3[i].Image = Image.FromFile(target + @"\Resources\16.jpg");                        break;                    case 32:                        list_3[i].Image = Image.FromFile(target + @"\Resources\32.jpg");                        break;                    case 64:                        list_3[i].Image = Image.FromFile(target + @"\Resources\64.jpg");                        break;                    case 128:                        list_3[i].Image = Image.FromFile(target + @"\Resources\128.jpg");                        break;                    case 256:                        list_3[i].Image = Image.FromFile(target + @"\Resources\256.jpg");                        break;                    case 512:                        list_3[i].Image = Image.FromFile(target + @"\Resources\512.jpg");                        break;                    case 1024:                        list_3[i].Image = Image.FromFile(target + @"\Resources\1024.jpg");                        break;                    case 2048:                        list_3[i].Image = Image.FromFile(target + @"\Resources\2048.jpg");                        break;                    case 4096:                        list_3[i].Image = Image.FromFile(target + @"\Resources\4096.jpg");                        break;                    case 8192:                        list_3[i].Image = Image.FromFile(target + @"\Resources\8192.jpg");                        break;                }                switch (newGame.iMap[3, i])                {                    case 0:                        list_4[i].Image = Image.FromFile(target + @"\Resources\0.jpg");                        break;                    case 2:                        list_4[i].Image = Image.FromFile(target + @"\Resources\2.jpg");                        break;                    case 4:                        list_4[i].Image = Image.FromFile(target + @"\Resources\4.jpg");                        break;                    case 8:                        list_4[i].Image = Image.FromFile(target + @"\Resources\8.jpg");                        break;                    case 16:                        list_4[i].Image = Image.FromFile(target + @"\Resources\16.jpg");                        break;                    case 32:                        list_4[i].Image = Image.FromFile(target + @"\Resources\32.jpg");                        break;                    case 64:                        list_4[i].Image = Image.FromFile(target + @"\Resources\64.jpg");                        break;                    case 128:                        list_4[i].Image = Image.FromFile(target + @"\Resources\128.jpg");                        break;                    case 256:                        list_4[i].Image = Image.FromFile(target + @"\Resources\256.jpg");                        break;                    case 512:                        list_4[i].Image = Image.FromFile(target + @"\Resources\512.jpg");                        break;                    case 1024:                        list_4[i].Image = Image.FromFile(target + @"\Resources\1024.jpg");                        break;                    case 2048:                        list_4[i].Image = Image.FromFile(target + @"\Resources\2048.jpg");                        break;                    case 4096:                        list_4[i].Image = Image.FromFile(target + @"\Resources\4096.jpg");                        break;                    case 8192:                        list_4[i].Image = Image.FromFile(target + @"\Resources\8192.jpg");                        break;                }            }        }

游戏操作:

private void MainForm_KeyUp(object sender, KeyEventArgs e)        {            switch (e.KeyCode)            {                case Keys.Up:                    newGame.MoveUp();                    break;                case Keys.Down:                    newGame.MoveDown();                    break;                case Keys.Left:                    newGame.MoveLeft();                    break;                case Keys.Right:                    newGame.MoveRight();                                        break;            }            drawMap();            strGrade = "";            strGrade+=newGame.grade;            laScore.Text = strGrade;            if (newGame.grade > iBestGrade)            {                iBestGrade = newGame.grade;                laBestScore.Text = "";                laBestScore.Text += iBestGrade;                newBestGrade = true;            }                   }







0 0
原创粉丝点击