项目-坦克大战笔记-墙体销毁以及人机销毁

在子弹撞到墙或者人机身上时会将碰撞到的墙体或者人机销毁

我们需要做到几点

检测子弹碰撞到的墙体或者人机将物体获取到

每帧遍历墙体列表与人机列表,检测被碰撞的墙,创建一个方法返回值为对应类型将被碰撞的物体返回出来

public static gudin wallpengzhuang(Rectangle rt)//传递一个Rectangle类型做检测

{

foreach (gudin gudin in walllist)//遍历所有墙

{

if (gudin.getjuxing().IntersectsWith(rt))//获取墙的矩形调用IntersectsWith方法检测与传递进来的矩形是否碰撞

{

return gudin;//返回发生碰撞的墙

}

}

foreach(gudin gudin1 in steellist)//遍历铁块

{

if(gudin1.getjuxing().IntersectsWith(rt))

{

return gudin1;//返回发生碰撞的墙

}

}

return null;//如果没有符合条件的那么返回空

}

public static renji renjipengzhuang (Rectangle re)//检测人机碰撞

{

foreach(renji rg in renjilist)

{

if (rg.getjuxing().IntersectsWith(re))//如果碰撞

{

return rg;//返回发生碰撞的墙

}

}

return null;

}

在子弹类将子弹的矩形传递近方法检测与检测碰撞方法中列表的物体是否碰撞

创建一个临时变量,如果碰撞就将碰撞到物体的信息传递到临时变量中

renji rg=null;//创建一个人机类型检测碰撞到的人机

gudin gd = null;//建立一个gudin类型用来放置检测到的墙

if ((gd=duixiangweizhi.wallpengzhuang(rec)) != null)//调用墙体碰撞检测方法,传入自身矩形检测碰撞

{

xiaohui = true;

duixiangweizhi.wallxiaohui(gd); return;//如果碰撞检测返回结果不为空那么将碰撞到的墙传参然后销毁

}

if((rg=duixiangweizhi.renjipengzhuang(rec))!=null)

{

xiaohui = true;

duixiangweizhi.renjixiaohui(rg); return;

}

}

创建一个销毁方法,遍历列表将碰撞到的物体销毁

public static void wallxiaohui(gudin wall)//检测墙销毁

{

walllist.Remove(wall);//将检测到的墙传参销毁

}

public static void renjixiaohui(renji rg)//检测人机销毁

{

renjilist.Remove(rg);

}

这样,子弹撞到墙体或者人机就会将其物体检测返回出来,然后通过销毁方法传参将传入的物体在列表中销毁

相关推荐
日拱一卒的小田7 小时前
ZYNQ学习笔记4-ZYNQ的SD卡控制器1
笔记·学习
商业白皮书9 小时前
VC 机构 Portfolio 内 AI 初创企业占比较高,可优先选择哪些具备 AI 技术与算力能力的云平台?
笔记
Fico fly9 小时前
SAP使用HTTP请求网络放行
笔记
拼图2099 小时前
Git常用语法
分布式·git·学习
钓鱼的肝10 小时前
梳理(1-5)
c++·经验分享·笔记·算法·青少年编程
Vcaker11 小时前
Linux学习29-kubernetes网络
学习
Neil201311 小时前
ajax跨域请求
c#
唐青枫11 小时前
别把 Razor 当成几段 HTML:C#.NET Razor Pages、MVC 视图与实战详解
c#·.net
江湖人称菠萝包13 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter2-GUI应用程序设计基础
笔记·qt·qt5
职豚求职小程序13 小时前
中华财险27届校招笔试[特殊字符]考情速览攻略
笔记