C#制作贪吃蛇游戏(下)

 时间:2024-10-13 19:43:50

1、双击窗体(注意不是双击控件),加入代码: public class Di { public static int D; publi艘早祓胂c static int s = 2; } void Add_food() { Label label = new Label(); label.Name = "Lab" + Di.s; label.BackColor = System.Drawing.Color.Red; label.Size = new System.Drawing.Size(10, 10); label.Margin = new System.Windows.Forms.Padding(0); label.ForeColor = System.Drawing.Color.Red; label.AutoSize = false; label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; Random rd = new Random(); tag1: label.Location = new System.Drawing.Point(rd.Next(0, 30) * 10, rd.Next(0, 30) * 10); for (int i = 1; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; if (label.Location == lo.Location) goto tag1; } this.Controls.Add(label); label.SendToBack(); panel1.SendToBack(); }如图所示:

C#制作贪吃蛇游戏(下)

2、双击开始按钮,加入代码: Add_food(); button1.Enabled = false;如图所示:

C#制作贪吃蛇游戏(下)

3、双击timer1控件,加入代码: if (Di.D == 1) { System.Windows.Forms.SendKeys.Send("{DOWN}"); return; }; if (Di.D == 2) { System.Windows.Forms.SendKeys.Send("{UP}"); return; }; if (Di.D == 3) { System.Windows.Forms.SendKeys.Send("{LEFT}"); return; }; if (Di.D == 4) { System.Windows.Forms.SendKeys.Send("{RIGHT}"); return; };如图所示:

C#制作贪吃蛇游戏(下)

4、单击Form1,在属性中单击事件,找到KeyDown,双击,加入代码: if (e.KeyCode == Keys.Down &锾攒揉敫amp;& Di.D != 2) { timer1.Enabled = false; Di.D = 1; Label lb = (Label)this.Controls.Find("Lab" + Di.s, true)[0]; Label lbl = (Label)this.Controls.Find("Lab" + (Di.s - 1), true)[0]; Point[,] Lo = new Point[101, 101]; for (int i = 1; i <= Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; Lo[i, i] = new Point(lo.Location.X, lo.Location.Y); } Label le = new Label(); le.Visible = false; if (e.KeyCode == Keys.Down && Di.s > 2 && lbl.BackColor != System.Drawing.Color.Red && Lab1.Location.Y != 290) { for (int i = 2; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; lo.Location = Lo[i - 1, i - 1]; } } if (lb.Location == new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y + 10)) { lb.BackColor = System.Drawing.Color.Black; le.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y); Lab1.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y + 10); lb.Location = le.Location; this.Controls.Remove(le); Di.s++; Add_food(); timer1.Enabled = true; return; } for (int i = 1; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; if (lo.Location == new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y + 10)) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; ; } if (e.KeyCode == Keys.Down && Lab1.Location.Y == 290) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; Lab1.Top = Lab1.Top + 10; timer1.Enabled = true; } if (e.KeyCode == Keys.Up && Di.D != 1) { timer1.Enabled = false; Di.D = 2; Label lb = (Label)this.Controls.Find("Lab" + Di.s, true)[0]; Label lbl = (Label)this.Controls.Find("Lab" + (Di.s - 1), true)[0]; Point[,] Lo = new Point[101, 101]; for (int i = 1; i <= Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; Lo[i, i] = new Point(lo.Location.X, lo.Location.Y); } Label le = new Label(); le.Visible = false; if (e.KeyCode == Keys.Up && Di.s > 2 && lbl.BackColor != System.Drawing.Color.Red && Lab1.Location.Y != 0) { for (int i = 2; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; lo.Location = Lo[i - 1, i - 1]; } } if (lb.Location == new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y - 10)) { lb.BackColor = System.Drawing.Color.Black; le.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y); Lab1.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y - 10); lb.Location = le.Location; this.Controls.Remove(le); Di.s++; Add_food(); timer1.Enabled = true; return; } for (int i = 1; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; if (lo.Location == new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y - 10)) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; ; } if (e.KeyCode == Keys.Up && Lab1.Location.Y == 0) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; Lab1.Top = Lab1.Top - 10; timer1.Enabled = true; } if (e.KeyCode == Keys.Left && Di.D != 4) { timer1.Enabled = false; Di.D = 3; Label lb = (Label)this.Controls.Find("Lab" + Di.s, true)[0]; Label lbl = (Label)this.Controls.Find("Lab" + (Di.s - 1), true)[0]; Point[,] Lo = new Point[101, 101]; for (int i = 1; i <= Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; Lo[i, i] = new Point(lo.Location.X, lo.Location.Y); } Label le = new Label(); le.Visible = false; if (e.KeyCode == Keys.Left && Di.s > 2 && lbl.BackColor != System.Drawing.Color.Red && Lab1.Location.X != 0) { for (int i = 2; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; lo.Location = Lo[i - 1, i - 1]; } } if (lb.Location == new System.Drawing.Point(Lab1.Location.X - 10, Lab1.Location.Y)) { lb.BackColor = System.Drawing.Color.Black; le.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y); Lab1.Location = new System.Drawing.Point(Lab1.Location.X - 10, Lab1.Location.Y); lb.Location = le.Location; this.Controls.Remove(le); Di.s++; Add_food(); timer1.Enabled = true; return; } for (int i = 1; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; if (lo.Location == new System.Drawing.Point(Lab1.Location.X - 10, Lab1.Location.Y)) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; ; } if (e.KeyCode == Keys.Left && Lab1.Location.X == 0) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; Lab1.Left = Lab1.Left - 10; timer1.Enabled = true; } if (e.KeyCode == Keys.Right && Di.D != 3) { timer1.Enabled = false; Di.D = 4; Label lb = (Label)this.Controls.Find("Lab" + Di.s, true)[0]; Label lbl = (Label)this.Controls.Find("Lab" + (Di.s - 1), true)[0]; Point[,] Lo = new Point[101, 101]; for (int i = 1; i <= Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; Lo[i, i] = new Point(lo.Location.X, lo.Location.Y); } Label le = new Label(); le.Visible = false; if (e.KeyCode == Keys.Right && Di.s > 2 && lbl.BackColor != System.Drawing.Color.Red && Lab1.Location.X != 290) { for (int i = 2; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; lo.Location = Lo[i - 1, i - 1]; } } if (lb.Location == new System.Drawing.Point(Lab1.Location.X + 10, Lab1.Location.Y)) { lb.BackColor = System.Drawing.Color.Black; le.Location = new System.Drawing.Point(Lab1.Location.X, Lab1.Location.Y); Lab1.Location = new System.Drawing.Point(Lab1.Location.X + 10, Lab1.Location.Y); lb.Location = le.Location; this.Controls.Remove(le); Di.s++; Add_food(); timer1.Enabled = true; return; } for (int i = 1; i < Di.s; i++) { Label lo = (Label)this.Controls.Find("Lab" + i, true)[0]; if (lo.Location == new System.Drawing.Point(Lab1.Location.X + 10, Lab1.Location.Y)) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; ; } if (e.KeyCode == Keys.Right && Lab1.Location.X == 290) { timer1.Enabled = false; MessageBox.Show("游戏结束!", "提示"); return; }; Lab1.Left = Lab1.Left + 10; timer1.Enabled = true; }如图所示:

C#制作贪吃蛇游戏(下)

5、至此,所有工作完成,按F5即可查看效果,如下图所示:

C#制作贪吃蛇游戏(下)
  • 如何关闭QQ微博和如何关闭QQ空间
  • 谜底世界怎样下载?
  • 王牌竞速改装等级任务完成攻略
  • 荔枝菠萝甜汤
  • Linux系统怎么配置swap分区
  • 热门搜索
    万圣节手抄报 初一英语手抄报 关于孝的手抄报 安全教育手抄报一等奖 清明节手抄报内容大全 科学幻想手抄报 红十字会手抄报 母亲节的手抄报 冬至手抄报 扫黑除恶手抄报内容