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

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

我们需要做到几点

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

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

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

}

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

相关推荐
摇滚侠21 分钟前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端
LuminousCPP2 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表
小弥儿2 小时前
GitHub今日热榜 | 2026-08-11:图原生基础设施首日登顶
学习·开源·github
半亩码田3 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
302wanger3 小时前
【阅读笔记】当AI拿走一切之后
笔记
疯狂打码的少年5 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
for_ever_love__5 小时前
python基础语法学习: 数据容器
windows·python·学习
云空6 小时前
《电子专业完整学习路线图(分两套:本科四年版 / 零基础自学速成版)》
科技·学习·学习方法·高考
min(a,b)6 小时前
学习第16天:LangGraph 与 Agent 工作流编排
学习
woshihuanglaoshi6 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos