商道如狼道 发表于 2024-10-5 12:45:14

项目-坦克大战学习-资源冲突办理

我们项目完成到这一步的时候经常会跳出说资源在其他地方被使用的提示
这是因为当我们按住方向键不动的时候窗体的按下事件就会多次触发,这样就会使一个资源被多次调用
我们要将按下设置为同一个方向只检测一次很简单,只须要在按下检测处增长一个条件,如果检测到按下的方向等于当前方向那么设置方向的代码不执行就可以了
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;
}
这是修改后的代码,给按下检测传参设置了条件如果传入方向不等于当前方向大概现在坦克制止移动才可以运行


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 项目-坦克大战学习-资源冲突办理