项目-坦克大战学习-资源冲突解决
我们项目完成到这一步的时候经常会跳出说资源在其他地方被使用的提示
这是因为当我们按住方向键不动的时候窗体的按下事件就会多次触发,这样就会使一个资源被多次调用
我们要将按下设置为同一个方向只检测一次很简单,只需要在按下检测处增加一个条件,如果检测到按下的方向等于当前方向那么设置方向的代码不执行就可以了
switch (Fangxiang1.KeyCode)//检测方向参数中存储的按键信息
{
case Keys.W :
if (Fangxiang != fangxiang.Up||yidong==false)//如果传入的方向不等于当前移动方向或者停止移动
{
Fangxiang = fangxiang.Up;//修改默认方向,在下一帧调用时更改绘制对象
yidong = true;
}
break;
case Keys.S:
if (Fangxiang != fangxiang.Down || yidong == false)
{
Fangxiang = fangxiang.Down;
yidong = true;
}
break;
case Keys.D:
if (Fangxiang != fangxiang.Right || yidong == false)
{
Fangxiang = fangxiang.Right;
yidong = true;
}
break;
case Keys.A:
if (Fangxiang != fangxiang.Left || yidong == false)
{
Fangxiang = fangxiang.Left;
yidong = true;
}
break;
}
这是修改后的代码,给按下检测传参设置了条件如果传入方向不等于当前方向或者目前坦克停止移动才可以运行