大家应该知道贪吃蛇这个游戏吧,这个游戏也是当时我们那个时代最风靡的一个小游戏,今天我会借这个讲解上位机开发思路来讲解下这个小游戏的开发思路。
一、开发Demo,请看动图
二、开发简介:
1、通过Start按钮触发一个时间启动线程,通过Time事件触发蓝色控件向向右移动,一旦碰到绿色控件就合并,这个就是贪吃蛇的思路。
2、橙色控件是可以用键盘事件触发改变位置的功能,仅供学习用。
三、该开发需要的基础:
1.C#语法基础
2.winform 界面开发基础
四、开发步骤
1.新建一个winform程序
2.新建一个启动按钮,这个按钮用来触发时间
private void Start_Click(object sender, EventArgs e)
{
timer1.Start(); //启动时间线程
timer1.Interval = 300; //设置时间间隔,也就是每隔500ms触发一次
}
3.启动时间线程,用来改变蓝色控件的X值,如果这个X值等于绿色那个控件的X值就合并
private void timer1_Tick(object sender, EventArgs e)
{
if (x == pictureBox3.Location.X-28 || x == pictureBox3.Location.X-29)
{
pictureBox3.Visible = false;
pictureBox1.Width = 28 * 2;
}
this.pictureBox1.Location = new Point(x, y);
}
4.添加橙色按钮的键盘事件
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.D)
{
x1 += 2;
//做一个防护防止控件越界
if (x1 >= 250)
{
x1 = 250;
this.pictureBox2.Location = new Point(x1, y1);
}
else
{
this.pictureBox2.Location = new Point(x1, y1);
Console.WriteLine("发送成功D");
}
}else if(e.KeyCode == Keys.A)
{
x1 -= 2;
this.pictureBox2.Location = new Point(x1, y1);
Console.WriteLine("发送成功A");
}
else if (e.KeyCode == Keys.W)
{
y1 -= 2;
this.pictureBox2.Location = new Point(x1, y1);
Console.WriteLine("发送成功W");
}
else if (e.KeyCode == Keys.S)
{
y1 += 2;
this.pictureBox2.Location = new Point(x1, y1);
Console.WriteLine("发送成功S");
}
}
完!
学习程序开发,最快的学习方式就是做小游戏开发,不仅学习进度快,而且对算法这一块会有深刻的认识。