【问题标题】:scratch sprite not registering hit consistently从头精灵没有一致地记录命中
【发布时间】:2021-05-09 13:29:04
【问题描述】:

这个简单的射击游戏应该会导致精灵在被击中时破碎并消失。它可能会在 40% 的时间内工作。这是项目的链接和相关的代码块:

https://scratch.mit.edu/projects/524150880/editor

【问题讨论】:

    标签: sprite mit-scratch


    【解决方案1】:

    事实证明,通过简化精灵的动作:

    到:

    解决了这个问题。精灵在被击中时会不断分解并消失。所以我猜这只是精简的问题?

    【讨论】:

      【解决方案2】:

      如果你要制作一个射击游戏,你可能想要使用create clone of [myself] 块然后这样做:
      when i start as a clone
      show
      repeat until < <touching [YOUR TARGET SPRITE HERE]> or <touching [edge]> >
      @987654325 @
      || move (ADD YOUR NUMBER HERE)
      start sound (meow)
      change [score] by (1)
      repeat (5)
      || change [mosaic] effect by (2)
      delete this clone

      对于子弹,你需要这个脚本:
      when green flag clicked
      forever
      if <key [ANY KEY YOU WOULD LIKE TO USE TO SHOOT] pressed> then
      || create clone of myself

      但是,如果您想为子弹添加冷却时间,请创建一个名为 cooldown 的新变量,并每毫秒(0.1 秒)将其减少 0.1,但请确保当冷却时间为 0 时它不会消失进入底片,当冷却时间为 0 时,你可以射击,它会将冷却时间重置为你想要的秒数,如果你想要它,你的代码应该如下所示:

      when green flag clicked
      forever
      if <key [ANY KEY YOU WOULD LIKE TO USE TO SHOOT] pressed> then
      || if cooldown < 0.1
      || || create clone of myself

      之所以是|| if cooldown < 0.1而不是|| if cooldown = 0是因为如果你搞砸了,不小心把它变成了4.25而不是4.2,子弹还是会发射

      【讨论】:

      • 抱歉,这一次,精灵并没有破碎或消失。还是谢谢。
      • 你记得输入delete this clone吗?如果你不这样做,它不会删除你的子弹的克隆。您对格式感到困惑吗?
      • 我确实删除了克隆,并且确实了解了您的格式。如果代码是错误的,那么它将一直是错误的,而不仅仅是部分时间。我讨厌说从头开始是错误的,因为我一直相信计算机永远不会出错,但我正朝着那个方向前进。
      • 嘿!很抱歉 5 个月后才回复,但您需要删除旧代码才能正常工作。
      • 迟到总比不到好,谢谢!在我简化了代码之后,它的工作几乎正常。
      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 2018-10-26
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多