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

news/2024/10/4 19:02:30 标签: 笔记, 学习, c#

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

我们需要做到几点

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

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

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

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


http://www.niftyadmin.cn/n/5690261.html

相关文章

Go基础学习11-测试工具gomock和monkey的使用

文章目录 基础回顾MockMock是什么安装gomockMock使用1. 创建user.go源文件2. 使用mockgen生成对应的Mock文件3. 使用mockgen命令生成后在对应包mock下可以查看生成的mock文件4. 编写测试代码5. 运行代码并查看输出 GomonkeyGomonkey优势安装使用对函数进行monkey对结构体中方法…

Pikachu-Sql Inject-搜索型注入

MySQL的搜索语句: select * from table where column like %text%; 如:使用引号闭合左边的引号, or 11 把所有数据查询出来; # 注释掉后面的 引号等; test or 11# 查询出结果: 注入的核心点…

【CKA】十二、持久化存储卷PersistentVolume

12、持久化存储卷PersistentVolume 1. 考题内容: 2. 答题思路: 按题目要求检查各个参数,我就是第一次没看清楚,把ReadWriteOnce写成ReadWriteMany了,幸亏做完检查了一遍 这个参数可有可无,加上也不影响 …

小红书制作视频如何去原视频音乐,视频如何去原声保留背景音乐?

在视频编辑、音乐制作或个人娱乐中,有时我们希望去掉视频中的原声(如对话、解说等),仅保留背景音乐。这种处理能让观众更加聚焦于视频的氛围或节奏,同时也为创作者提供了更多创意空间。选择恰当的背景音乐,…

自学网络安全(黑客技术)90天学习计划

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”…

电脑出现msvcp140.dll丢失的解决方法,总结6种解决方法

在计算机使用过程中,我们常常会遇到一些错误提示,其中最常见的就是“msvcp140.dll丢失”的错误。这个错误提示通常出现在运行某个程序时,它意味着计算机无法找到所需的msvcp140.dll文件。那么,msvcp140.dll丢失是怎么回事呢&#…

Netgear-WN604 downloadFile.php 信息泄露复现(CVE-2024-6646)

0x01 产品描述: NETGEAR WN604是一款功能强大的双频AC1200无线路由器,非常适合中大型家庭和企业使用。它支持最新的802.11ac无线标准,能提供高达1200Mbps的无线传输速度。路由器具备千兆有线网口和3个100Mbps有线网口,可满足有线和无线设备的接入需求。此外,它还内置…

SpringBoot与舞蹈艺术:古典舞在线交流平台开发记

第二章 相关技术介绍 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译&#xf…