位置: 编程技术 - 正文

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

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

  • 外贸企业进项税不抵扣分录
  • 交所得税用计提吗
  • 营业税金及附加是什么科目
  • 员工工资计入管理费用吗
  • 超市发票报销用途写什么
  • 企业所得税季度申报填写示例
  • 残疾人就业保障金征收使用管理办法
  • 付现金给别的公司是否可以开具发票呢?
  • 购买印花税票怎么抵扣
  • 管理费用和财务费用算营业成本吗
  • 应付职工薪酬社保
  • 记账凭证一定要签字吗
  • 增值税税率零税率
  • 城建税和教育费附加的计税依据是什么
  • 小规模纳税人开专票税率是1%还是3%
  • 个人劳务法律规定
  • 广告费和业务宣传费扣除标准2023
  • 赠送样品需要交税吗
  • 现金流量表本月数和本年累计数是相等的么
  • 公司罚款怎么写
  • 单位开具发票
  • 商品从总仓到分拣要多久
  • 广告公司收到广告费发票如何入账
  • php的数组函数
  • PHP:pg_lo_truncate()的用法_PostgreSQL函数
  • php可以做什么脚本
  • 新税法减免项目
  • 会计编录怎么做
  • 资产负债表的编制方法
  • 【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05
  • 卖废品收入计入需要交税吗
  • 减税性质代码及名称农业
  • auto.js 逆向
  • 营改增抵减的销项税发票要抵扣吗
  • 对公户怎么取备用金
  • 最通俗易懂的电动力学教材
  • 差额征税怎么交税
  • Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web
  • 语音识别的正确流程
  • tensorflow卷积神经网络
  • 结算应付职工薪酬影响当期损益吗
  • 上市公司发行股票会计分录
  • 包装物押金属于应税货物吗
  • 事业单位应当按月对固定资产计提折旧
  • 免增值税项目可以抵扣吗
  • 应税销售行为有哪些
  • 个人去开票要交税吗
  • 个人所得税9月初申报哪个月的
  • 原始凭证收集
  • 发票冲红如何做账红字发票需要给购买方吗
  • 火车票退票改签手续费
  • 应付账款增值税如何挂账
  • 支付代理费计入什么科目
  • 银行汇票的适用主体
  • 从农业生产者手中购进免税农产品
  • sql如何学
  • xampp修改mysql默认密码的方法
  • win2000服务器
  • win7的系统在哪里打开
  • windows server 2008 r2怎么用u盘启动
  • 在unix系统中采用的页面置换
  • OpenSolaris 6/06 DVD版本
  • win7旗舰版关闭强制签名
  • windows10玩lol有延迟怎么办
  • linux的ftp命令
  • 大白菜U盘安装原版XP系统教程精细版
  • 微软推送Win11226x1.2050
  • win7屏幕颜色变了怎么恢复
  • 怎么才能把win7变win10
  • hyper虚拟机连接外网
  • win10mobile最新版本
  • Android游戏开发案例教程小小弹球
  • python输出unicode编码
  • 磁盘监视器在哪
  • jQuery Ajax 上传文件处理方式介绍(推荐)
  • 税务局冬季作息时间
  • 税务登记证办理
  • 纳税人逾期未申报的原因有哪些
  • 三证一码是什么
  • 2020年税务系统关闭
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设