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

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

我们需要做到几点

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

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

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

}

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

相关推荐
渣渣灰飞6 小时前
MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第二节:WHERE 条件查询
sql·学习·mysql
维他奶糖616 小时前
基于 DrissionPage 实现小红书搜索笔记批量采集
笔记
心中有国也有家6 小时前
AtomGit Flutter 鸿蒙客户端:E-Brufen 架构设计
学习·flutter·华为·harmonyos
hssfscv7 小时前
QT的学习笔记4——QMainWindow、资源文件以及主要控件的介绍
笔记·qt·学习
克里斯蒂亚诺更新7 小时前
电脑关闭密码的操作
笔记
小小的代码里面挖呀挖呀挖7 小时前
杰理蓝牙耳机开发--LE Audio与游戏耳机应用
笔记·单片机·物联网·学习
医疗信息化王工7 小时前
从零到一:基于 GGUF 格式部署 Unlimited-OCR 搭建企业级证件识别服务
图像处理·c#·ocr
xiaomici8 小时前
SAC中的Dataset/Model/Planning model
笔记
一楼的猫8 小时前
AI写作检测机制技术深度解析:200+维度检测、叙事指纹与网文AI辅助怎么过审
人工智能·学习·安全·chatgpt·ai写作
学数学的口心贝8 小时前
从零搭建并维护个人主页
经验分享·笔记