关于用C#写贪吃蛇的问题
发布网友
发布时间:2022-06-18 22:42
我来回答
共3个回答
热心网友
时间:2024-11-22 20:34
分析下有哪些必须的?
1:前进方向
前进方向统一时间只有一个,也就是说当你按上下左右后 把你所按的值改变前进方向(你可以先用 button 来做。4个button 分别选择4个方向)
2:移动速度
不论你是否按了方向蛇都是会移动的!所以这里你可以用一个循环来控制蛇移动
而你按了上下左右之后知识改变方向
3:边界
这个给你个思路 就是
X 开始 0 X结束 100
Y 开始 0 Y结束 100
然后放入数组
4:蛇的位置
蛇的位置是不规则的
但是总有规律 你也可以用数组或集合
比如 蛇是L形状的 那么 他的位置 你可以记录
XList[0]="1";
YList[0]="1";
XList[1]="1";
YList[1]="2";
XList[2]="1";
YList[2]="3";
XList[3]="2";
YList[3]="4";
至于蛇吃东西之后 是尾巴后面也就是说
根据后最后2个存储的坐标就可以知道哪一个格子 +1
比如 X[倒数2] = 3;Y[到处2]=1;X[倒数1] = 2;Y[到处1]=1;那么蛇头肯定向右
那么我们就在 X.Add(X[倒数1]+1);Y.Add(Y[倒数1]);
具体程序怎么判断得看你了~
对于撞墙
做一个MAPX 开始 和 结束 和 MAPY 开始 结束 然后 用蛇的X[] 和Y[]进行比对
如果一样肯定是撞墙了
思路有了 加油吧 先把基本的行动控制完成
然后再吃东西
热心网友
时间:2024-11-22 20:34
游戏的开发有相应的算法,最基本的就是碰撞检测算法,这个在贪吃蛇及俄罗斯方块里都有很经典的体现
移动,吃豆后变长,主要是在碰撞检测成功后再相应的画图,
键盘控制主要就是KeyPress事件了,还有存档,主要是记录一些坐标数据,楼主要是有兴趣的话,可以联系我,我用C#写过贪吃蛇,可以给你发一份源码
热心网友
时间:2024-11-22 20:35
控制好说啦,获得用户输入的按键
switch(用户按下的键)
case 上:
case 下:
case 左:
case 右:
case 其他:
default:
至于刷屏就看你用什么方法实现显示的啦,一般就是用timer每隔一小段时间把你的贪吃蛇的属性显示一遍。
看看下面的代码,演示了一个蛇头向右移动的例子:当然这只是一种演示,实际的游戏不应该这么写的:
private void Form1_Load(object sender, EventArgs e)
{
_L1 = new Label();
_L1.Location = new Point(50, 50);
_L1.Text = "蛇头";
this.Controls.Add(_L1);
}
private void button1_Click(object sender, EventArgs e)
{
Timer t = new Timer();
t.Interval = 200;
t.Tick += new EventHandler(t_Tick);
t.Start();
}
void t_Tick(object sender, EventArgs e)
{
文本框每隔0.2秒,X坐标加1,也就是向右移动1
_L1.Location = new Point(_L1.Location.X + 1, 50);
}
控制台倒是有点难度呀,你的好好研究一下关于控制台的输入输出原理呀。