位置: 编程技术 - 正文

游戏中跟踪弹算法(跟踪子弹)

编辑:rootadmin
在飞行射击游戏中,恐怕没有一个游戏不用到跟踪算法的。比如在玩街机的时候,是不是经常挂于BOSS的"跟踪弹"?  这是怎样实现的呢?很简单,只要有高中的一点数学知识就行了!   首先回忆几个三角函数sin,cos,tan(tg),arctan(arctg)  sin(x)对边/斜边。在1,2项限为正,3,4项限为负  cos(x)邻边/斜边。在1,4项限为正,2,3项限为负  tan(x)对边/邻边。在1,3项限为正,2,4项限为负   考虑到游戏里面的坐标系如下所示:     假设敌人子弹的坐标为slug.x,slug.y,子弹的速度为slug.speed(全部是double型)  上面的三角形的斜边就代表子弹的速度,则子弹每次移动的时候座标的改变为:  slug.x &#;= slug.speed * cos(theta);  slug.y &#;= slug.speed * sin(theta);   在敌人子弹向你发射过来的时候,首先要计算子弹位置与你所在的位置所夹的角度theta  简单计算就是:  double deltax = player.x - slug.x; // 注意,、是以主角位置为起点 在上图中表示就是x1-x0  double deltay = player.y - slug.y; // y1-y0   为了防止在相除的时候分母为0,做一个判断,使分母近&#;为0,究竟是负的近&#;还是正的近&#;呢?这就需要比较子弹和你的Y坐标谁大谁小了。  if( deltax == 0 )  {  if( player.y = slug.y ) // 子弹需要下移  deltax = 0.;  else // 子弹需要上移  deltax = -0.;  }  同理,对deltay作判断  if( deltay == 0 )  {  if( player.x = slug.x ) // 子弹需要右移  deltay = 0.;  else // 子弹需要左移  deltay = -0.;  }  现在对角度所处的项限作判断  if( deltax0 deltay0 )  angle = atan(fabs(deltay/deltax)); // 第一项限  else if( deltax0 deltay0 )  angle = -atan(fabs(deltay/deltax)) // 第二项限  else if( deltax0 deltay0 )   angle = &#;atan(fabs(deltay/deltax)) // 第三项限  else  angle = 2-atan(fabs(deltay/deltax)) // 第四项限  其中取3.(呵呵,别忘记近&#;哦)  好了,现在已经得到正确的方向了,可以计算子弹坐标了!  slug.x &#;= slug.speed * cos(theta);  slug.y &#;= slug.speed * sin(theta);  这样,每次子弹移动之前做一下判断,重新计算角度,怎么样?"跟踪弹"出来了吧?  

推荐整理分享游戏中跟踪弹算法(跟踪子弹),希望有所帮助,仅作参考,欢迎阅读内容。

游戏中跟踪弹算法(跟踪子弹)

文章相关热门搜索词:一个可以有跟踪子弹的游戏,跟踪子弹,带有跟踪导弹的游戏有哪些,跟踪弹怎么画,有跟踪弹吗,带有跟踪导弹的游戏有哪些,一个可以有跟踪子弹的游戏,带有跟踪导弹的游戏有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

Unity3D游戏开发之Unity3D动画与Mecanim动画系统 Mecanim是Unity新增的动画系统,其功能强大而灵活,让人类和非人类角色栩栩如生。Mecanim的重定向极大的提供了工作效率,而且占用极少CPU周期。使用从U

教你怎样用unity3d发布一个Android的apk文件.绝对精细 1.首先呢。就是必要的一些软件工具了。不用说unity3d这个是必要的(觉得这是不是废话)。然后就是。我们的一些运行的环境了。Java(jdk).Android模拟器(

Unity3D游戏开发之使用场景Ⅰ:建立类型映射 总的来看,Unity的使用场景主要有以下几个:建立类型映射用于单例模式用于依赖注入接下来,将逐一介绍各使用场景。在创建对象时,毫无疑问,类型

标签: 跟踪子弹

本文链接地址:https://www.jiuchutong.com/biancheng/382633.html 转载请保留说明!

上一篇:Unity3D的iTween

下一篇:Unity3D游戏开发之Unity3D动画与Mecanim动画系统(Unity3D游戏开发标准教程)

  • 以房抵债如何计算契税?
  • 小规模纳税人征税率为多少
  • 公司贷款利息怎么做分录
  • 居民企业参股外国企业信息报告表怎么删除
  • 设计合同需要缴哪些税
  • 建筑工人的工资应该怎样支付
  • 仓库缺货怎么处理
  • 高速公路通行费发票可以抵扣增值税吗
  • 去年发生的成本但今年9月份才开票付款
  • 年终对应交税费的减免税款怎样处理?
  • 农业企业土地租金会计分录
  • 购买存货的进口商品
  • 经营性租赁购入会计分录
  • 营改增后如何纳税
  • 普票记账联可以报销吗
  • 职工福利费当年怎么扣
  • 提供建筑服务应在发票备注栏注明
  • 个体工商户是否需要报税
  • 工资条上税基调整是啥意思
  • 啥叫规上工业企业
  • 个人所得税的税收标准
  • 办公室空调维修属于办公费吗
  • 坏账准备什么时候转回
  • win10运行红色警戒2卡顿
  • 技术服务辅助设施包括
  • php string
  • 开发产品结转到哪个科目
  • 发票是否可以作为收款依据
  • 购货折让会计分录
  • 购买房地产和买房一样吗
  • laslajas大教堂
  • 自建办公楼装修效果图
  • php往数组中添加元素
  • 垃圾清运费属于什么服务
  • react的高阶组件理解
  • php映射
  • 汇兑损益计入哪里
  • 公司账户转法人账户
  • 小汽车的消费税税率按照气缸容量实行差别
  • 什么情况可以行政拘留不予执行
  • 深入了解工作优势怎么回答
  • 个人发票抬头和公司发票抬头有什么区别
  • 每月随工资发放的房补,本月至今未发
  • 税务现金流量表填错了怎么办
  • win2008r2服务器文件无法进入软件
  • 购入固定资产如何交所得税
  • 什么叫总分类账簿
  • 公司购买汽车如何抵成本
  • 车辆保险费算什么费用
  • 购买原材料还没发票
  • 融资租出的设备是不是资产
  • 现金流水账怎么做表格
  • 如何查询公司经营异常
  • sqlserver查看磁盘大小
  • wind如何安装
  • 安装win7系统需要注意什么
  • 忘记密码 ?
  • win10怎么检查
  • ssonsvr.exe - ssonsvr是什么进程
  • wps文字打印不清楚怎么办
  • 给推荐几款
  • Ghost XP SP3 YN8.0装机版 (雨林木风)
  • mac笔记本如何设置不黑屏
  • linux 查看磁盘io繁忙
  • linux 运行二进制文件
  • javascript基础
  • nodejs执行cmd命令
  • css英文代码翻译
  • js绑定函数
  • cmd怎么复制上一条命令快捷键
  • linux归档文件什么意思
  • 从零基础开始
  • 利用python绘图
  • JavaScript中的变量名不区分大小写
  • python怎么制作
  • android判断应用是否在前台
  • 税务要求实名认证
  • 土地使用税一般谁交
  • 国地税合并6月15日挂牌
  • 云南2021高考改革
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设