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

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

我们需要做到几点

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

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

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

}

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

相关推荐
一条泥憨鱼4 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
HY小宝F5 小时前
树莓派智能摄像头系统 30 天重学计划之 Day 04 · HTTP / API:控制链入口 —— 学习总结
网络协议·学习·http
Go Work5 小时前
2026 Cadence SPB 24.1中文版安装图文详解(附安装包)
经验分享·笔记
ACP广源盛139246256735 小时前
HDMI2.0 转 DP1.4 桥接方案评估:国产 GSV2125C@ACP 芯片选型笔记
笔记·硬件架构·hdmi·type-c·国产芯片
龙仔7256 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记
悟乙己6 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
淡海水6 小时前
02-07-原理篇-GC暂停时间的本质
开发语言·unity·c#·gc·暂停时间
霍霍的袁6 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio
PC2005-cloud7 小时前
MySQL学习笔记:GTID 主从复制,从原理到实践,告别传统 Binlog+Position 的痛点
笔记·学习·mysql
starsky762387 小时前
Agent学习——上下文工程(二)
学习