收藏
回答

为什么当克隆体自己碰到全部边缘时“删除此克隆体”无效?

我设置了三个精灵用来模拟发射子弹(bullet)、扔炸弹(bomb)、发射导弹(missile)

三个精灵是同样的设置,既碰到敌人或者边缘就删除克隆体。现在炸弹和导弹可以实现。只有子弹(bullet)越打越多,哪怕把敌人打死也不删除自己的克隆体。

跪求大佬解答。

回答关注问题邀请回答
收藏

2 个回答

  • 小圣贤庄主
    小圣贤庄主
    2022-06-04

    这种情况或者无关克隆体本身原因,其实是精灵运动轨迹并非连续性所导致的,视觉暂留性“欺骗我们“眼前的物体是连续运动的,但在这里连续轨迹几乎不存在。 既然不是连续的轨迹,那么精灵运动的速度在固定的时差内,就是跨度大小(落点间距),这个跨度也会因为精灵本身的尺度而变化,有理由相信碰撞判断失误是跨度刚好越过边缘(或物体)所导致的,可以用个简单的测试来验证一下:

    随便将一个精灵放置屏幕中央,红框内有3种跨度差异较大的运动方案来选择;黄框中是关于边缘碰撞检测处理部分,也算是两种吧。我们先试下如上图这种方式,用<调试场景>模式运行来观察精灵的数量(本体+克隆体)变化。

    但上图这个移动速度太慢了! 接着试......

    原因我想差不多就是这样了,最后采用的这种检测至少能防止您的“子弹一直飞”,而关于目标物体击中判定,则只能从运动跨度和精灵尺寸上找一个平衡点了,总之—— 精灵的运动大多没有连续的,除非要一个一个像素移动......但这样的子弹可以用筷子去夹!

    2022-06-04
    有用
    回复 2
    • 辣笔小茶
      辣笔小茶
      2022-06-04
      也就是说,精灵每次移动都是一段距离,如果碰巧精灵在接近边缘的那次移动距离超出了边缘就没发生碰撞。是这样吗?
      2022-06-04
      回复
    • 小圣贤庄主
      小圣贤庄主
      2022-06-04回复辣笔小茶
      就是这样,事实上观察同源点多次快速发射的物体(比如子弹时),能看出貌似残影的几个落点,其中空隙都是跳过去的。
      2022-06-04
      回复
  • 辣笔小茶
    辣笔小茶
    2022-06-03

    补充:

    我发现因为精灵尺寸(宽高)设置得过小就会导致以上问题。

    当我适当调大尺寸的时候就没有上述问题了,就很困惑。

    2022-06-03
    有用
    回复
登录 后发表内容