300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 用winform(c#窗体应用程序)实现推箱子小游戏

用winform(c#窗体应用程序)实现推箱子小游戏

时间:2019-06-13 03:03:46

相关推荐

用winform(c#窗体应用程序)实现推箱子小游戏

using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 推箱子_窗体版_{public partial class Form1 : Form{public Form1(){InitializeComponent();} void mapshow_agrin()//从新开始时运行,根据地图信息重新编译图片位置;{for (int i = 0; i < 13; i++){for (int j = 0; j < 14; j++){if (map_3[i, j] == 1){ qiang[qt].Top = i * 20;qiang[qt].Left = j * 20;qiang[qt].Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/qt.jpg");qiang[qt].BackgroundImageLayout = ImageLayout.Center;qt++;}if (map_3[i, j] == 2){xiangzi[xz].Top = i * 20;xiangzi[xz].Left = j * 20;xiangzi[xz].Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/xz.jpg");xiangzi[xz].BackgroundImageLayout = ImageLayout.Center;xz++;}if (map_3[i, j] == 4){mubiao[mb].Top = i * 20;mubiao[mb].Left = j * 20;mubiao[mb].Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/mb1.jpg");mubiao[mb].BackgroundImageLayout = ImageLayout.Center;mb++;}if (map_3[i, j] == 3){y = i;x = j;}}}xiaoren1.Height = xiaoren1.Width = 20;xiaoren1.Top = y * 20;xiaoren1.Left = x * 20;//xiaoren.borderstyle = borderstyle.fixedsingle;xiaoren1.Show();}void mapshow()//程序启动时要运行的地图编译程序,按照地图信息生成图片框,实行下一关时也会运行;{ for (int i = 0; i < 13; i++){for (int j = 0; j < 14; j++){if (map_1[i, j] == 1){PictureBox h = new PictureBox();//生成一个新的图片盒子,盒子总体上限可调;h.Width = h.Height = 20;h.Top = i*20;h.Left = j*20;h.Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/qt.jpg");//图片的绝对地址;h.BackgroundImageLayout = ImageLayout.Center;//h.BackColor = Color.Peru;h.BorderStyle = BorderStyle.FixedSingle; qiang[qt] = h;this.Controls.Add(h);//将生成的图片添加到控件中;qt++;}if (map_1[i, j] == 2){PictureBox h = new PictureBox();h.Width = h.Height = 20;h.Top = i * 20;h.Left = j * 20;h.Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/xz.jpg");h.BackgroundImageLayout = ImageLayout.Center;//h.BackColor = Color.PaleGreen;//h.BorderStyle=BorderStyle.FixedSingle;xiangzi[xz] = h;this.Controls.Add(h);xz++;}if (map_1[i, j] == 4){PictureBox h = new PictureBox();h.Width = h.Height = 20;h.Top = i * 20;h.Left = j * 20;h.Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/mb1.jpg");h.BackgroundImageLayout = ImageLayout.Center;//h.BackColor = Color.Yellow;//h.BorderStyle = BorderStyle.FixedSingle;h.AutoSize = false;mubiao[mb] = h;this.Controls.Add(h);mb++;}if (map_1[i, j] == 3){y = i ;x = j ;}}}xiaoren1.Height = xiaoren1.Width = 20;xiaoren1.Top = y * 20;xiaoren1.Left = x * 20;//xiaoren.borderstyle = borderstyle.fixedsingle;xiaoren1.Show();}private void move(object sender, KeyEventArgs e)//整个游戏需要用到的键盘按键控制;{if (gamestart==true &&(e.KeyCode == Keys.Up || e.KeyCode == Keys.W)){m = Convert.ToInt32(move_m.up);moveup();}if (gamestart == true && (e.KeyCode == Keys.Down || e.KeyCode == Keys.S)){m = Convert.ToInt32(move_m.down);movedown();}if (gamestart == true && (e.KeyCode == Keys.Left || e.KeyCode == Keys.A)){m = Convert.ToInt32(move_m.left);moveleft();}if (gamestart == true && (e.KeyCode == Keys.Right || e.KeyCode == Keys.D)){m = Convert.ToInt32(move_m.right);moveright();}if (gamestart == true && e.KeyCode == Keys.R){congwan_Click(sender,e);}}public void moveup()//向上运动时所需的控制程序;{if (map_1[y - 1, x] == 0 || map_1[y - 1, x] == 4)//小人的下一个目标点为空地时;{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x] = 4;map_1[y - 1, x] = 3;xiaoren1.Top -= 20;y--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y - 1, x] = 3;xiaoren1.Top -= 20;map_1[y, x] = 0;y--;}}else if (map_1[y - 1, x] == 1)//小人的下一个坐标为墙,跳过此次循环{ }else if (map_1[y - 1, x] == 2 || map_1[y - 1, x] == 5)//小人的下一个坐标为未到达目标的箱子或到达目标的箱子{if (map_1[y - 2, x] == 1 || map_1[y - 2, x] == 2 || map_1[y - 2, x] == 5)//箱子的下一个目标为墙或空箱子或到达目标的箱子{ }else if (map_1[y - 2, x] == 0)//箱子的下一个目标为空地{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y - 2, x] = 2;movexz();map_1[y, x] = 4;//movemb();map_1[y - 1, x] = 3;xiaoren1.Top -= 20;//movembxz();y--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y - 2, x] = 2;movexz();//movembxz();map_1[y - 1, x] = 3;xiaoren1.Top -= 20;map_1[y, x] = 0;y--;}}else if (map_1[y - 2, x] == 4)//箱子的下一个目标为目标点{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y - 2, x] = 5;movexz();//movemb();map_1[y, x] = 4;//movembxz();map_1[y - 1, x] = 3;xiaoren1.Top -= 20;y--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y - 2, x] = 5;movexz();//movemb();//movembxz();map_1[y - 1, x] = 3;xiaoren1.Top -= 20;map_1[y, x] = 0;y--;}}}movemb();movembxz();}void movedown()//向下运动时所需的程序;{if (map_1[y + 1, x] == 0 || map_1[y + 1, x] == 4)//小人的下一个坐标为空地,进行移动{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x] = 4;//movembxz();//movemb();map_1[y + 1, x] = 3;xiaoren1.Top += 20;y++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y + 1, x] = 3;xiaoren1.Top += 20;//movembxz();//movemb();map_1[y, x] = 0;y++;}}else if (map_1[y + 1, x] == 1)//小人的下一个坐标为墙,跳过此次循环{ }else if (map_1[y + 1, x] == 2 || map_1[y + 1, x] == 5)//小人的下一个坐标为未到达目标的箱子或到达目标的箱子{if (map_1[y + 2, x] == 1 || map_1[y + 2, x] == 2 || map_1[y + 2, x] == 5)//箱子的下一个目标为墙或空箱子或到达目标的箱子{ }else if (map_1[y + 2, x] == 0)//箱子的下一个目标为空地{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y + 2, x] = 2;movexz();map_1[y, x] = 4;//movembxz();map_1[y + 1, x] = 3;xiaoren1.Top += 20;y++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y + 2, x] = 2;movexz();//movembxz();map_1[y + 1, x] = 3;xiaoren1.Top += 20;map_1[y, x] = 0;y++;}}else if (map_1[y + 2, x] == 4)//箱子的下一个目标为目标点{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y + 2, x] = 5;movexz();//movemb();map_1[y, x] = 4;//movembxz();map_1[y + 1, x] = 3;xiaoren1.Top += 20;y++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y + 2, x] = 5;movexz();//movemb();//movembxz();map_1[y + 1, x] = 3;xiaoren1.Top += 20;map_1[y, x] = 0;y++;}}}movemb();movembxz();}void moveleft()//向左运动时所需的程序;{if (map_1[y, x - 1] == 0 || map_1[y, x - 1] == 4)//小人的下一个坐标为空地,进行移动{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x] = 4;//movembxz();//movemb();map_1[y, x - 1] = 3;xiaoren1.Left -= 20;x--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x - 1] = 3;xiaoren1.Left -= 20;//movembxz();//movemb();map_1[y, x] = 0;x--;}}else if (map_1[y, x - 1] == 1)//小人的下一个坐标为墙,跳过此次循环{ }else if (map_1[y, x - 1] == 2 || map_1[y, x - 1] == 5)//小人的下一个坐标为未到达目标的箱子或到达目标的箱子{if (map_1[y, x - 2] == 1 || map_1[y, x - 2] == 2 || map_1[y, x - 2] == 5)//箱子的下一个目标为墙或空箱子或到达目标的箱子{ }else if (map_1[y, x - 2] == 0)//箱子的下一个目标为空地{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x - 2] = 2;movexz();map_1[y, x] = 4;//movembxz();map_1[y, x - 1] = 3;xiaoren1.Left -= 20;x--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x - 2] = 2;movexz();//movembxz();map_1[y, x - 1] = 3;xiaoren1.Left -= 20;map_1[y, x] = 0;x--;}}else if (map_1[y, x - 2] == 4)//箱子的下一个目标为目标点{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x - 2] = 5;movexz();//movemb();map_1[y, x] = 4;//movembxz();map_1[y, x - 1] = 3;xiaoren1.Left -= 20;x--;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x - 2] = 5;movexz();//movemb();//movembxz();map_1[y, x - 1] = 3;xiaoren1.Left -= 20;map_1[y, x] = 0;x--;}}}movemb();movembxz();}void moveright()//向右运动时所需的程序;{if (map_1[y, x + 1] == 0 || map_1[y, x + 1] == 4)//小人的下一个坐标为空地,进行移动{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x] = 4;//movembxz();//movemb();map_1[y, x + 1] = 3;xiaoren1.Left += 20;x++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x + 1] = 3;xiaoren1.Left += 20;//movemb();//movembxz();map_1[y, x] = 0;x++;}}else if (map_1[y, x + 1] == 1)//小人的下一个坐标为墙,跳过此次循环{ }else if (map_1[y, x + 1] == 2 || map_1[y, x + 1] == 5)//小人的下一个坐标为未到达目标的箱子或到达目标的箱子{if (map_1[y, x + 2] == 1 || map_1[y, x + 2] == 2 || map_1[y, x + 2] == 5)//箱子的下一个目标为墙或空箱子或到达目标的箱子{ }else if (map_1[y, x + 2] == 0)//箱子的下一个目标为空地{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x + 2] = 2;movexz();map_1[y, x] = 4;//movembxz();map_1[y, x + 1] = 3;xiaoren1.Left += 20;x++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x + 2] = 2;movexz();//movembxz();map_1[y, x + 1] = 3;xiaoren1.Left += 20;map_1[y, x] = 0;x++;}}else if (map_1[y, x + 2] == 4)//箱子的下一个目标为目标点{if (map_2[y, x] == 4)//如果小人现在的坐标是目标点的坐标{map_1[y, x + 2] = 5;movexz();//movemb();map_1[y, x] = 4;//movembxz();map_1[y, x + 1] = 3;xiaoren1.Left += 20;x++;}else//如果小人现在的坐标不是目标点的坐标{map_1[y, x + 2] = 5;movexz();//movemb();//movembxz();map_1[y, x + 1] = 3;xiaoren1.Left += 20;map_1[y, x] = 0;x++;}}}movemb();movembxz();} void movexz()//箱子移动时所需的程序,在小人接触到箱子后调用;{for(int i = xz_1; xiangzi[i] != null; i++){if (xiangzi[i].Left == xiaoren1.Left && xiangzi[i].Bottom == xiaoren1.Top && m == Convert.ToInt32(move_m.up)){xiangzi[i].Top -= 20;}else if (xiangzi[i].Left == xiaoren1.Left && xiangzi[i].Top == xiaoren1.Bottom && m == Convert.ToInt32(move_m.down)){xiangzi[i].Top += 20;}else if (xiangzi[i].Top == xiaoren1.Top && xiangzi[i].Right == xiaoren1.Left && m == Convert.ToInt32(move_m.left)){xiangzi[i].Left -= 20;}else if (xiangzi[i].Top == xiaoren1.Top && xiangzi[i].Left == xiaoren1.Right && m == Convert.ToInt32(move_m.right)){xiangzi[i].Left += 20;}}}void movemb()//箱子到达目标时所需程序,判断当前有哪些箱子与目标点重合;{for (int i = mb_1; mubiao[i] != null; i++){for (int j = xz_1; xiangzi[j] != null; j++){if (xiangzi[j].Location == mubiao[i].Location){mubiao[i].Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/mb2.jpg");mubiao[i].BackgroundImageLayout = ImageLayout.None;xiangzi[j].SendToBack(); }}}}void movembxz()//箱子在目标点移动时的函数,判断是否有箱子被推出目标点;{for (int i = mb_1; mubiao[i] != null; i++){if (mubiao[i].Location==xiaoren1.Location){mubiao[i].Image = Image.FromFile(@"C:\Users\Administrator\Desktop/photo/mb1.jpg");mubiao[i].BackgroundImageLayout = ImageLayout.Center;}}}void xuanguan()//地图阵列,总共12关;{//“0”表示空地;//“1”表示墙体;//“2”表示箱子;//“3”表示小人;//“4”表示目标点;//“5”表示已完成的目标点;if (kq == 1){map_1=map_2=map_3= new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,1,0,0,0,0},{0,0,0,0,1,0,4,0,4,1,0,0,0,0},{0,0,0,0,1,0,2,2,2,1,0,0,0,0},{0,0,0,0,1,3,0,1,0,1,0,0,0,0},{0,0,0,0,1,4,0,0,0,1,0,0,0,0},{0,0,0,0,1,1,1,1,1,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 2){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,1,1,1,1,1,0},{0,0,0,0,0,0,1,0,0,1,0,0,1,0},{0,0,0,0,0,0,1,0,0,2,2,0,1,0},{0,1,1,1,1,1,1,0,2,1,0,0,1,0},{0,1,4,4,4,1,1,1,0,1,0,0,1,1},{0,1,4,0,0,1,0,0,2,0,1,0,0,1},{0,1,4,0,0,0,0,2,0,2,0,2,0,1},{0,1,4,0,0,1,0,0,2,0,1,0,0,1},{0,1,4,4,4,1,1,1,0,1,0,0,1,1},{0,1,1,1,1,1,1,0,2,0,0,0,1,0},{0,0,0,0,0,0,1,0,3,1,0,0,1,0},{0,0,0,0,0,0,1,1,1,1,1,1,1,0}};}if (kq == 3){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,1,1,1,1,1,0,0,0,0,0,0,0},{0,0,1,3,0,0,1,1,1,1,1,0,0,0},{0,0,1,0,1,2,1,0,0,0,1,0,0,0},{0,0,1,0,2,0,0,0,0,0,1,0,0,0},{0,0,1,1,1,0,1,1,2,1,1,0,0,0},{0,0,0,1,0,0,1,0,4,4,1,1,0,0},{0,0,0,1,0,0,2,4,4,4,4,1,0,0},{0,0,0,1,1,2,1,1,0,1,0,1,0,0},{0,0,0,1,0,2,0,0,0,1,0,1,0,0},{0,0,0,1,0,0,0,1,0,0,0,1,0,0},{0,0,0,1,1,1,1,1,1,1,1,1,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 4){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,1,0,0,0,0},{0,0,0,1,1,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,2,0,2,2,0,1,0,0,0},{0,0,0,1,4,4,4,4,4,4,1,0,0,0},{0,0,0,1,0,2,2,0,2,0,1,0,0,0},{0,0,0,1,1,1,0,3,1,1,0,0,0,0},{0,0,0,0,0,1,1,1,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 5){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,0,0,0,0,0},{0,0,0,0,1,0,3,0,1,1,1,0,0,0},{0,0,0,1,1,2,1,2,0,0,1,0,0,0},{0,0,0,1,0,0,0,0,1,0,1,0,0,0},{0,0,0,1,0,4,4,2,2,4,1,0,0,0},{0,0,0,1,1,0,4,0,1,1,1,0,0,0},{0,0,0,0,1,1,0,0,1,0,0,0,0,0},{0,0,0,0,0,1,1,1,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},};}if (kq == 6){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,1,1,1,1,1,1,1,0,0,0,0},{0,0,0,1,4,0,4,0,4,1,0,0,0,0},{0,0,0,1,0,2,2,2,0,1,0,0,0,0},{0,0,0,1,4,2,3,2,4,1,0,0,0,0},{0,0,0,1,0,2,2,2,0,1,0,0,0,0},{0,0,0,1,4,0,4,0,4,1,0,0,0,0},{0,0,0,1,1,1,1,1,1,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},};}if (kq == 7){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,0,0,0,0,0},{0,0,0,0,1,0,3,0,1,1,1,0,0,0},{0,0,0,1,1,2,1,2,0,0,1,0,0,0},{0,0,0,1,0,4,4,0,4,0,1,0,0,0},{0,0,0,1,0,0,2,2,0,1,1,0,0,0},{0,0,0,1,1,1,0,1,4,1,0,0,0,0},{0,0,0,0,0,1,0,0,0,1,0,0,0,0},{0,0,0,0,0,1,1,1,1,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 8){map_1 = map_2 = map_3 = new int[13, 14]{{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,1,1,1,1,1,1,1,1,1,0,0},{0,0,0,1,3,0,0,0,0,0,0,1,0,0},{0,0,0,1,0,1,0,1,1,0,0,1,0,0},{0,0,0,1,4,1,4,1,4,0,4,1,0,0},{0,0,0,1,2,2,2,2,2,2,2,1,0,0},{0,0,0,1,0,4,0,4,0,4,0,1,0,0},{0,0,0,1,0,0,0,0,0,0,0,1,0,0},{0,0,0,1,1,1,1,1,1,1,1,1,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 9){map_1 = map_2 = map_3 = new int[13, 14]{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,1,1,1,1,1,0,0,0,0},{ 0,0,0,0,1,1,0,0,0,1,0,0,0,0},{ 0,0,0,1,1,0,0,0,0,1,1,1,0,0},{ 0,0,0,1,0,0,1,4,4,0,0,1,0,0},{ 0,0,0,1,0,2,2,4,2,0,0,1,0,0},{ 0,0,0,1,1,3,2,4,1,1,1,1,0,0},{ 0,0,0,0,1,1,0,0,1,0,0,0,0,0},{ 0,0,0,0,0,1,1,1,1,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 10){map_1 = map_2 = map_3 = new int[13, 14]{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,1,1,1,1,1,1,1,0,0},{ 0,0,0,1,1,1,0,4,2,0,0,1,0,0},{ 0,0,0,1,3,2,2,4,4,0,0,1,0,0},{ 0,0,0,1,0,2,4,4,1,0,0,1,0,0},{ 0,0,0,1,0,2,2,4,2,0,1,1,0,0},{ 0,0,0,1,1,3,2,4,1,1,1,0,0,0},{ 0,0,0,1,0,2,4,4,0,0,1,0,0,0},{ 0,0,0,1,1,1,1,1,1,1,1,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 11){map_1 = map_2 = map_3 = new int[13, 14]{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,0,0,0,0,1,1,1,1,1,1,0,0},{ 0,0,0,0,0,1,1,1,3,0,0,1,0,0},{ 0,0,0,0,0,1,4,0,2,0,4,1,0,0},{ 0,0,0,0,0,1,0,0,2,0,1,1,0,0},{ 0,0,0,0,1,1,1,0,1,1,1,0,0,0},{ 0,0,0,1,1,0,2,0,0,1,0,0,0,0},{ 0,0,0,1,0,0,0,0,0,1,0,0,0,0},{ 0,0,0,1,4,0,0,1,1,1,0,0,0,0},{ 0,0,0,1,1,1,1,1,0,0,0,0,0,0},{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0}};}if (kq == 12){map_1 = map_2 = map_3 = new int[13, 14]{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0},{ 0,0,1,1,1,1,1,1,0,0,0,0,0,0},{ 0,0,1,0,0,0,0,1,0,0,0,0,0,0},{ 0,0,1,0,0,2,0,1,1,1,1,0,0,0},{ 0,0,1,0,2,2,0,1,0,0,1,1,0,0},{ 0,0,1,0,1,0,1,1,2,0,0,1,0,0},{ 0,0,1,4,4,4,0,0,4,4,0,1,0,0},{ 0,0,1,1,1,1,1,1,1,0,1,1,0,0},{ 0,0,1,0,0,0,1,1,0,0,0,1,0,0},{ 0,0,1,3,2,0,0,0,4,2,0,1,0,0},{ 0,0,1,0,0,0,1,1,0,0,0,1,0,0},{ 0,0,1,0,0,0,1,1,1,1,1,1,0,0},{ 0,0,1,1,1,1,1,0,0,0,0,0,0,0}};}}void clean()//点击下一关时运行的清除程序,用于清除当前关卡的控件;{for(int i=0; qiang[i] != null; i++){this.Controls.Remove(qiang[i]);}for (int i = 0; xiangzi[i] != null; i++){this.Controls.Remove(xiangzi[i]);}for (int i = 0; mubiao[i] != null; i++){this.Controls.Remove(mubiao[i]);}}enum move_m{up,down,left,right}int[,] map_1,map_2,map_3;//构建地图所需阵列; int y ,x;//用于表示当前位子,也就是小人的位子;int m;//用于记录当前按键信息;PictureBox[] qiang = new PictureBox[10000000];//构建墙体所需图片框集合;有上限int qt = 0;//用于墙体生成时的变量;从新生成地图时需要复位;PictureBox[] xiangzi = new PictureBox[1000000];//构建箱子所需图片框集合;有上限int xz = 0;//用于生成箱子时的变量;从新生成地图时需要复位;PictureBox[] mubiao = new PictureBox[1000000];//构建目标点所需图片框集合;有上限int mb = 0;//用于生成目标点时的变量;从新生成地图时需要复位;int kq;//用于表示关卡的变量;int qt_1=0, xz_1=0, mb_1=0;//用于存放qt、xz、mb、变量信息的暂存器;bool gamestart = false;//表示游戏开始的开关;点击开始按钮后启动;private void move(object sender, PreviewKeyDownEventArgs e){ }//重开按钮;private void congwan_Click(object sender, EventArgs e){qt = qt_1;//读取暂存的地图构建所需控件变量;xz = xz_1;//读取暂存的地图构建所需控件变量;mb = mb_1;//读取暂存的地图构建所需控件变量;xuanguan();//重新加载一遍地图信息;movembxz();//将已完成的目标点还原;mapshow_agrin();//运行重开时的地图加载函数;}private void Form1_Load(object sender, EventArgs e){kaishi.Hide();txt1.Text = "请选择你的关卡"; }//关卡选择按钮,对应12个关卡;private void guanqia1_Click(object sender, EventArgs e){kq = 1;txt1.Hide();xuanguan();kaishi.Show();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia2_Click(object sender, EventArgs e){kq = 2;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void playagrin(object sender, MouseEventArgs e)//无用的函数,请忽略;{//qt = 0;//xz = 0;//mb = 0;//map_3 = map_2;//map_1 = map_3;//xuanguan();//mapshow_agrin();}private void guanqia3_Click(object sender, EventArgs e){kq = 3;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia4_Click(object sender, EventArgs e){kq = 4;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia5_Click(object sender, EventArgs e){kq = 5;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia6_Click(object sender, EventArgs e){kq = 6;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia7_Click(object sender, EventArgs e){kq = 7;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia8_Click(object sender, EventArgs e){kq = 8;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia9_Click(object sender, EventArgs e){kq = 9;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia10_Click(object sender, EventArgs e){kq = 10;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia11.Hide();guanqia12.Hide();}private void guanqia11_Click(object sender, EventArgs e){kq = 11;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia12.Hide();}private void guanqia12_Click(object sender, EventArgs e){kq = 12;txt1.Hide();xuanguan();kaishi.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();}//下一关的按钮程序;private void next_Click(object sender, EventArgs e){qt_1 = qt;//先暂存地图构建所需的控件变量;xz_1 = xz;//先暂存地图构建所需的控件变量;mb_1 = mb;//先暂存地图构建所需的控件变量;kq++;//将关卡变量加一;clean();//清除当前关卡里的控件和变量; xuanguan();//重新加载地图;地图阵列更新为下一关的阵列; mapshow();//重新生成新的地图;}private void fanhui_Click(object sender, EventArgs e){Application.Restart();}//开始按钮,用于打开游戏开始开关和隐藏不需要的控件;private void kaishi_Click(object sender, EventArgs e){gamestart = true;kaishi.Hide();mapshow();congwan.Show();fanhui.Show();next.Show();guanqia1.Hide();guanqia2.Hide();guanqia3.Hide();guanqia4.Hide();guanqia5.Hide();guanqia6.Hide();guanqia7.Hide();guanqia8.Hide();guanqia9.Hide();guanqia10.Hide();guanqia11.Hide();guanqia12.Hide();}//取消方向键对控件的焦点的控件,用自己自定义的函数处理各个方向键的处理函数;protected override bool ProcessCmdKey(ref Message msg, Keys keyData){switch (keyData){case Keys.Up:if (gamestart==true){m = Convert.ToInt32(move_m.up);moveup();} return true;//不继续处理case Keys.Down:if (gamestart==true){m = Convert.ToInt32(move_m.down);movedown();}return true;case Keys.Left:if (gamestart==true){m = Convert.ToInt32(move_m.left);moveleft();}return true;case Keys.Right:if (gamestart==true){m = Convert.ToInt32(move_m.right);moveright();}return true;}return base.ProcessCmdKey(ref msg, keyData);}}}

以下为程序所需的图片:

窗体控件位置截图:

游戏内截图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。