位置: 编程技术 - 正文

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

编辑: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游戏开发标准教程)

  • 企业所得税纳税义务人
  • 代收代缴个人所得税手续费
  • 个人独资企业需要交什么税
  • 劳务属于什么工种
  • 一般纳税人10万以下免什么税
  • 企业入库流程图
  • 小规模企业没有进项发票怎么办
  • 开办费所得税清缴时如何调整
  • 免税货物开成含税率的怎么报税?
  • 计提成本会计分录怎么做
  • 一个公司可以有几个公章
  • 母公司资产转移到子公司
  • 劳动保护用品应由什么开支
  • 购买国债利息收入计入利润总额吗
  • 专票的六位开票代码指的是什么
  • 金三接口调用失败怎么办?
  • 网络服务费一般纳税人几个点
  • 坏账计提方法和比例
  • 个贷系统平帐专户A贷
  • 折旧可以计入主体成本吗
  • 临时工工资的会计处理和税务处理
  • 坏老狼告诉我们什么道理
  • php调用sql
  • 企业自持商品住房定义
  • 前期差错更正怎么计算
  • 逾期未收回包装物押金会计分录
  • 苹果macOS 11开发者预览版发布
  • fbembed.dll
  • 便秘怎么办 女性
  • 扣除年度未扣除怎么计算
  • 工业总产值 工业销售产值
  • 企业类型变更是什么意思
  • 工业企业成本核算的内容是
  • 独立费用包括
  • 应收账款和应付账款怎么对冲
  • 百度地图api的使用
  • 计提投资者利润
  • 基于web的购物网站
  • stp 命令
  • 收据可以用来做账吗
  • 红字发票抵扣联要装订到凭证里吗
  • 企业接受捐赠资产属于什么科目
  • mysql中用户和权限的作用
  • 业务招待费是否计入管理费用
  • 资产负债表的其他应收款怎么算出来的
  • 收到以前年度退回的企业所得税怎么做账
  • 捆绑销售的会计处理?
  • 现金收入支出表怎么填
  • 低值易耗品费用记在什么费用
  • 股份支付应如何进行账务处理?
  • 个体户减免税额怎么填
  • 分公司抬头发票总公司可以抵扣吗
  • 法人名称是填公司名吗
  • 企业职工福利费支出包括哪些内容
  • 小规模减半征收房产税文件
  • sql 获取字段类型
  • windows server 2003 sp3
  • c盘满了怎么释放空间
  • uefi硬盘安装win10
  • linux使用范围
  • windowxp背景图
  • macos 多屏
  • linux就该这么
  • win8.1操作界面
  • Win10系统CMD有哪些新功能? Win10 CMD命令提示符的七大使用技巧
  • js内存释放
  • opengl入门视频教程
  • 我吐槽你
  • [置顶]公主大人接下来是拷问时间31
  • css怎么画图
  • python数据结构教程
  • jquery移动端ui框架
  • threejs 源码
  • python中sort()的用法
  • JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
  • javascriptjs
  • 税务局要求补上年房租开票
  • 加油站怎么收税
  • 个体工商户将自有车辆出租取得的收入怎么征税
  • 社保申报截止日期每月
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设