lb0.Top = 50; lb0.Left = left; wall.Add(lb0); left -= 10; } }
public void CreateWall1() {
int left = 200; Label lb1;
for (int i = 0; i < 10; i++) {
lb1 = new Label();
lb1.Name = \ lb1.BackColor = Color.Red; lb1.Width = 10; lb1.Height = 10; lb1.Top = 310; lb1.Left = left; wall1.Add(lb1); left -= 10; } }
public void CreateWall2() {
int top = 200; Label lb2;
for (int i = 0; i < 10; i++) {
lb2 = new Label();
lb2.Name = \ lb2.BackColor = Color.Red; lb2.Width = 10; lb2.Height = 10; lb2.Left = 50; lb2.Top = top; wall2.Add(lb2); top -= 10; } }
public void CreateWall3() {
int top = 200; Label lb3;
for (int i = 0; i < 10; i++) {
lb3 = new Label();
15
lb3.Name = \ lb3.BackColor = Color.Red; lb3.Width = 10; lb3.Height = 10; lb3.Left = 260; lb3.Top = top; wall3.Add(lb3); top -= 10; } }
//创建食物
public void CreateFood() {
Random rand = new Random();
food_p.X = rand.Next(36) * 10;//限定食物物所能出现的横坐标 food_p.Y = rand.Next(36) * 10;//限定食物物所能出现的横坐标 for (int i = 0; i < body.Count; i++) {
if (food_p.Y == ((Label)body[i]).Top && food_p.X == ((Label)body[i]).Left) {
this.CreateFood(); break; } }
//判断食物和所见障碍物是否重合 for (int i = 0; i < wall.Count; i++) {
if (food_p.Y == ((Label)this.Wall[i]).Top && food_p.X ==
((Label)this.Wall[i]).Left)
{
this.CreateFood(); }
else if (food_p.Y == ((Label)this.Wall1[i]).Top && food_p.X ==
((Label)this.Wall1[i]).Left)
{
this.CreateFood(); }
else if (food_p.X == ((Label)this.Wall2[i]).Left && food_p.Y ==
((Label)this.Wall2[i]).Top)
{
this.CreateFood(); }
else if (food_p.X == ((Label)this.Wall3[i]).Left && food_p.Y ==
((Label)this.Wall3[i]).Top)
{
this.CreateFood(); }
16
}
food = new Label(); food.Width = 10; food.Height = 10; food.Top = food_p.Y; food.Left = food_p.X; //加载食物图片
food.Image = Snake.Properties.Resources.food; }
//蛇吃食物 通过timer进行速度的设置
public Panel EatFood(Panel panel1, Timer timer1, TextBox textBox1, TextBox textBox2) {
if (((Label)body[0]).Top == food_p.Y && ((Label)body[0]).Left == food_p.X) {
panel1 = this.DeFood(panel1); Label lb = new Label();//增加蛇身
lb.Name = \ int i=body.Count%3; if(i==0)
lb.BackColor = Color.DimGray; else if(i==1)
lb.BackColor = Color.DeepPink; else
lb.BackColor = Color.DeepSkyBlue; lb.Width = 10; lb.Height = 10;
lb.Top = ((Label)body[body.Count - 1]).Top; lb.Left = ((Label)body[body.Count - 1]).Left; body.Add(lb);
textBox1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + 10); textBox2.Text = textBox1.Text;
if (Convert.ToInt32(textBox2.Text) < Convert.ToInt32(textBox1.Text)) textBox2.Text = textBox1.Text; //修改速度
if (textBox1.Text == \ timer1.Interval = 150;
else if (textBox1.Text == \ timer1.Interval = 100;
else if (textBox1.Text == \ timer1.Interval = 80;
else if (textBox1.Text == \ timer1.Interval = 50;
else if (textBox1.Text == \ timer1.Interval = 20; }
return panel1; }
17
//吃过后销毁再创建食物
public Panel DeFood(Panel panel1) {
panel1.Controls.Remove(food); this.CreateFood();
panel1.Controls.Add(food); return panel1; } } }
//Form 源代码: using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms; using System.Collections; using System.Media;
namespace Snake {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
private snake sk = new snake(); //构造一个蛇的对象
private int dir = 3; //初始时要运动的方向(向右) private Point bomb_b; //定义炸弹 private Label bomb;
public void CreatBomb()//创建炸弹 {
Random rand = new Random(); bomb_b.X = rand.Next(20) * 10; bomb_b.Y = rand.Next(20) * 10; bomb = new Label(); bomb.Width = 10; bomb.Height = 10;
bomb.Top = bomb_b.Y; bomb.Left = bomb_b.X;
bomb.Image = Snake.Properties.Resources.b2; //判断随机炸弹是否与随机食物重合
if (bomb_b.X == sk.food_p.X && bomb_b.Y == sk.food_p.Y)
18
相关推荐: