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

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

我们需要做到几点

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

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

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

}

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

相关推荐
真的想上岸啊17 分钟前
EdgeMind·云边智护机器人:第一篇:从一堆舵机到第一台能动的机器人——EdgeMind 项目立项与底盘搭建记录
笔记·机器人
图灵农场20 分钟前
Ollama入门笔记
笔记
yivifu21 分钟前
CSS 自动级联编号有序列表完全指南
前端·css·c#·html·有序列表·级联编号
IronMurphy25 分钟前
AI Agent学习day6 从 MCP 到 RAG 记忆:AI Agent 项目中的三块核心基础
人工智能·学习
li星野30 分钟前
RAG优化系列:基于用户反馈的检索权重调整(Feedback Loop)——让系统越用越聪明
python·学习
GNG34 分钟前
《10x Is Easier Than 2x》读书笔记
笔记·学习
半导体守望者34 分钟前
ADTEC AX-1000Ⅱ电源 RF电源等离子电源操作指南RF PLASMA GENERATOR
学习·机器人·自动化·制造·模块测试
Pluchon38 分钟前
萌萌技术分享笔记——Java综合项目
java·开发语言·笔记·git·github·mybatis·postman
范范@43 分钟前
Python进阶 网络编程笔记-多进程
网络·笔记·python
chnyi6_ya43 分钟前
论文阅读笔记|Wan: Open and Advanced Large-Scale Video Generative Models
论文阅读·笔记