当前位置: 首页 > news >正文

赤峰城乡建设局网站网站怎么做404

赤峰城乡建设局网站,网站怎么做404,网站建设的基础知识与维护,最新域名解析网站最近学习unity2D#xff0c;想实现一个回旋镖武器#xff0c;发出后就可以在角色周围回旋。 一、目标 1.不是一次性的#xff0c;扔出去、返回、没有了#xff1b;而是扔出去#xff0c;返回到角色后方相同距离#xff0c;再次返回#xff1b;再次返回#xff0c;永远…最近学习unity2D想实现一个回旋镖武器发出后就可以在角色周围回旋。 一、目标 1.不是一次性的扔出去、返回、没有了而是扔出去返回到角色后方相同距离再次返回再次返回永远不停止。 2.销毁的时机是这个武器与角色再次重合的时候相当于回收回旋镖如果不回收例如跳跃躲开那就一直转。 3.角色的位置会移动回旋镖得多次判断下一个目标点的位置。 4.回旋镖的速度需要从最大速度开始到接近目标点的时候逐渐减速返回时也要从最大速度开始到接近目标点的时候减速。 总的来说就是类似《忍者龙剑传3》里那个十字回旋镖武器的效果如果跳跃躲开就会一直在身边转。 二、问题 实际写代码实现的时候才发现有一堆坑。 1.回旋镖的坐标不能完全到达目标点因为unity是按帧算的每帧移动多少速度的话可能会超过目标点或者没有到达目标点有误差。 2.如果只以接近目标点判断的话会丢失距离每次回旋的距离逐渐变近最后停留原地不动了。 3.如果角色坐标移动回旋镖计算目标点并重新移动时经常速度变为0卡在原地不动不确定哪里出bug了。 三、代码部分 //这部分代码在武器代码cs部分float weaponRange 3;float weaponSpeed 15;//当前已飞行的距离float distanceTravelled 0f;//当前武器位置到目标点的总距离float distanceToTarget;//目标点在哪边bool targetIsRight false;[SerializeField] Transform weaponPos;FuncVector2 weaponPosFunc;Vector2 targetPos;Vector2 nowSpeed;Animator animator;Rigidbody2D rb2d;SpriteRenderer sprite;CircleCollider2D cc2d;void Awake(){animator GetComponentAnimator();cc2d GetComponentCircleCollider2D();rb2d GetComponentRigidbody2D();sprite GetComponentSpriteRenderer();}//发射武器方法其他类调用public void Shoot(bool isFaceingRight) {Vector2 newTarget;//其他类传来的一开始武器起点坐标Vector2 v weaponPosFunc();//bool类型武器图片如果角色面朝右边就是true就翻转图片否则不翻转sprite.flipX isFaceingRight;//bool类型武器的目标点方向后面会用targetIsRight isFaceingRight;//赋值刚开始武器到目标点的距离distanceToTarget Vector2.Distance(weaponPos.position, targetPos);//首次武器目标点直线看是角色面前还是背后//targetPos就是武器目标点if (!isFaceingRight) { newTarget new Vector2(v.x - weaponRange, v.y);targetPos newTarget;}else{newTarget new Vector2(v.x weaponRange, v.y);targetPos newTarget;}}//更新方法系统会每帧调用void Update(){// 向目标位置飞行并逐步减速到达目标点要掉头反复重复MoveTowardsTarget();}void MoveTowardsTarget(){//已经走过的距离/物体到目标的距离float dPercent distanceTravelled / distanceToTarget;if(dPercent 0){dPercent -dPercent;}if(dPercent 1){dPercent 1;}// 计算当前的速度因子使物体从快到慢weaponSpeed是初始武器速度//Lerp方法就是dPercent为0时返回第一个参数为1时返回第二个参数0-1之间时就返回第一个参数到第二个参数之间的值float speedFactor Mathf.Lerp(weaponSpeed, 0f, dPercent);//确定一个最慢速度否则速度因子接近0越来越慢很难到目标if(speedFactor 2f){speedFactor 2f;}// 计算朝目标位置的方向方向向量Vector2 direction (targetPos - (Vector2)weaponPos.position).normalized;//如果方向向量变为0就没办法移动了此时要指定一个默认方向向量if(direction.x 0 direction.y 0){//如果目标点在右边方向向量就是右边否则左边if (targetIsRight){direction new Vector2(1,0);}else{direction new Vector2(-1, 0);}}//设置物体的速度方向向量*速度因子//设置了这个武器就会开始移动rb2d.velocity direction*speedFactor;//保存当前速度后续可能用nowSpeed direction * speedFactor;// 更新已飞行的距离刚开始是0每一帧移动速度*每一帧时间路程然后累加distanceTravelled rb2d.velocity.magnitude * Time.deltaTime;//打印日志武器到目标点的距离//Debug.Log(distanceToTarget distanceToTarget);// 如果 (超过目标点 或者 接近目标点) 并且 至少走够了武器路程//需要分左右才能知道是没到目标点还是超过目标点需要超过目标点是否超过目标点就先用x判断了y又复杂了还得分上下//防止没到目标点就卡住又加了接近目标点if (targetIsRight){if ( ((targetPos.x weaponPos.position.x) || distanceToTarget0.1) distanceTravelled weaponRange){//重置目标点FreshTargetPos();}}else{if ( ((targetPos.x weaponPos.position.x) || distanceToTarget0.1) distanceTravelled weaponRange){//重置目标点FreshTargetPos();}}}void FreshTargetPos() {//玩家当前坐标实时获取玩家的武器发射点的坐标Vector2 p weaponPosFunc();//武器当前坐标Vector2 w weaponPos.position;//w点关于p点的对称点//targetPos new Vector2( 2*p.x -w.x , 2*p.y -w.y );// 计算朝目标位置的方向方向向量扩大武器范围倍数Vector2 direction (p - (Vector2)w).normalized * weaponRange;//算出下一个目标点targetPos new Vector2(direction.xp.x, direction.yp.y);//看目标点到底在哪里然后判断有没有超过目标点if (targetPos.x weaponPos.position.x){targetIsRight true;}else{targetIsRight false;}//已走过的路程归零distanceTravelled 0;// 重新计算物体到目标的距离weaponPos是当前武器坐标targetPos是目标点坐标得到的是距离distanceToTarget Vector2.Distance(weaponPos.position, targetPos);}四、备注 unity代码比较多就贴重要部分了关于坐标的计算 目前代码就是这个版本了大概实现了需求 武器当前速度处理还可能有些问题但是可以在玩家周围回旋了 如果玩家静止或者直线移动武器就在x轴上回旋 如果玩家跳跃武器就会斜方向回旋到玩家背后 感觉情况有些复杂可能哪里还有bug欢迎留言指正。 五、效果图片 如图可以在角色周围水平回旋斜方向也可以。
http://www.pierceye.com/news/301256/

相关文章:

  • 做拍卖网站多少钱办公室装修铺哪种地板
  • 国外网站有哪些平台网站系统建设需要什么资质
  • 做网站 就上凡科网做盗版网站会坐牢吗
  • 百事通网做网站做网站公众号多少钱
  • 影视作品网站开发与设计php做网站有哪些好处
  • 寻模板网站源码《基层建设》官方网站
  • 做网站龙岗深圳市网络seo推广平台
  • 公司资质查询官方网站网站建设开题报告
  • 桐城网站开发网站制作器手机版下载
  • 校友网站 建设网站开发都是使用框架吗
  • 手机网站字体大小规范优秀网站
  • 用动物做网站名称建设个人网站的策划书
  • 深圳网站开发公司宝网建设网站需要哪些素材
  • 网页设计需要学什么学历南宁seo服务公司
  • 网站开发学习未来做那个网站能致富
  • 建设厅科技中心网站免费网站怎么做出来的
  • 做一网站东莞网站建设
  • 电商网站建设需求网站开发培训排名
  • 厦门建设局网站城市建设郑州百度分公司
  • 长春火车站在哪广州冼村小学
  • 网站开发上海工资dedecms模板自适应
  • 湖北建设厅行政服务中心网站网络系统管理员工作内容
  • php 创建网站开发织梦网站后台打不开
  • 网站建设的企业html 网站
  • 山东省建设安全生产协会网站零基础学网站建设 知乎
  • 门户网站做等保需要备案哪些石家庄以岭药业股份有限公司招聘
  • 工信部网站备案方法红豆网桂林论坛
  • 开发网站年度工作总结及明年工作计划免费sem工具
  • 教育网站开发报告郑州哪家医院看男科比较专业
  • 企业门户网站系统wordpress 商业