主题:我用C#写的贪食蛇,没有复杂算法与结构,很基础的知识。
2263801
[专家分:0] 发布于 2010-04-30 13:08:00
这个是花了我2个通宵写的,
代码有点多吧 写了900多行,完全是自己想的,除了图形重绘参考别人的例子。。
里面所有的东西,我完全没有看过别的代码自己写的。
是写的不好,不过这真的是很基础很基础。。。
就那个所谓的,面向的对象的吧。。。
最后更新于:2010-04-30 13:20:00
回复列表 (共30个回复)
21 楼
2263801 [专家分:0] 发布于 2010-04-30 13:16:00
#region 画出信息
public void DrawMessage(string strMsg, Graphics g)
{
Font stringFont = new Font("Arial", 20);
float x = (420 - (g.MeasureString(strMsg, stringFont).Width)) / 2;
float y = (420 - (g.MeasureString(strMsg, stringFont).Height)) / 2;
g.DrawString(
strMsg,
stringFont,
Pens.Azure.Brush,
new PointF(x, y));
}
#endregion
#region 暂停/继续
public void IsPause()
{
try
{
if (snakelist.Count >= 3)
{
DrawMessage("Pause", this.CreateGraphics());
if (IsStart == false)
{
timer.Stop();
IsStart = true;
}
else
{
timer.Start();
IsStart = false;
}
}
this.Invalidate();
this.Update();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
#endregion
22 楼
2263801 [专家分:0] 发布于 2010-04-30 13:17:00
#region 加分
public void AddScore()
{
int n = Int32.Parse(this.num_lable.Text);
int s = n + 10;
this.num_lable.Text = s.ToString();
}
#endregion
#region 设置等级
public void Setlevel()
{
int x =snakelist.Count-3;
if (x==9)
{
this.lnum_label.Text = "1";
timer.Interval = 300;
}else
if (x==19)
{
timer.Interval = 250;
this.lnum_label.Text = "2";
}
else
if (x == 29)
{
timer.Interval = 200;
this.lnum_label.Text = "3";
}
else
if (x == 39)
{
timer.Interval = 150;
this.lnum_label.Text = "4";
}
23 楼
2263801 [专家分:0] 发布于 2010-04-30 13:17:00
else
if (x == 49)
{
timer.Interval = 135;
this.lnum_label.Text = "5";
}
else
if (x == 59)
{
timer.Interval = 120;
this.lnum_label.Text = "6";
}
else
if (x == 69)
{
timer.Interval = 105;
this.lnum_label.Text = "7";
}
else
if (x == 79)
{
timer.Interval = 90;
this.lnum_label.Text = "8";
}
else
if (x == 89)
{
timer.Interval = 70;
this.lnum_label.Text = "9";
}
else
if (x == 99)
{
timer.Interval = 50;
this.lnum_label.Text = "10";
}
}
#endregion
}
}
24 楼
lewe56 [专家分:0] 发布于 2010-05-04 09:07:00
看看
25 楼
IT学习者 [专家分:0] 发布于 2010-06-01 17:01:00
厉害啊!呵呵,我在VS2008下运行了,那个Score,Level没有值显示,也不改变值,我是新手,
26 楼
温柔的猪 [专家分:0] 发布于 2010-06-02 16:01:00
学习。
27 楼
温柔的猪 [专家分:0] 发布于 2010-06-02 22:21:00
想问下楼主,again和isagain分别是什么?还有,楼主能不能把设计思想说一下,以方便我们这些菜鸟学习?
28 楼
xizangbingchuan [专家分:0] 发布于 2010-07-20 11:06:00
睿智汇海学生前三个月课程项目作品: http://www.itcast.net/course/detail/2740,大家也可以下载了切磋一下
29 楼
2263801 [专家分:0] 发布于 2010-07-29 14:27:00
谢谢 回复,,
也许是字体的问题吧...
30 楼
2263801 [专家分:0] 发布于 2010-07-29 14:44:00
[quote]想问下楼主,again和isagain分别是什么?还有,楼主能不能把设计思想说一下,以方便我们这些菜鸟学习?[/quote]
设计思想就比较单纯, 你按常理去想一个物体的移动。
那个蛇移动,画出一个蛇移动后的画面就是X Y 加减。
移动新坐标的X Y 坐标画出蛇, 原来的 X Y 就删除, 上下左右基本都是这样。。
吃到食物的时候把它加到最后,因为蛇头不能被代替嘛。哈哈
不过现在让我重写的话,我会写得更好了。。。
again 就是 上下左右键 按到哪个 , 我自定义而已。
isagain 当你按下一个键的时候 ,在按别的键的一个判断,具体当你去写你就明白
我来回复