项目-坦克大战学习-资源冲突解决

我们项目完成到这一步的时候经常会跳出说资源在其他地方被使用的提示

这是因为当我们按住方向键不动的时候窗体的按下事件就会多次触发,这样就会使一个资源被多次调用

我们要将按下设置为同一个方向只检测一次很简单,只需要在按下检测处增加一个条件,如果检测到按下的方向等于当前方向那么设置方向的代码不执行就可以了

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;
}

这是修改后的代码,给按下检测传参设置了条件如果传入方向不等于当前方向或者目前坦克停止移动才可以运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值