• LovableSidekick@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    16 days ago

    I’m not a Python programmer but just intuitively it seems like if i==0 will make the first block fall right after it’s created. Shouldn’t it be if i==25? Or does it work because the loop has time to generate all the other blocks before the first block has time to hit the second one?

    • monica_b1998@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      16 days ago

      Good question - it’s the latter: all the blocks are generated practically instantaneously, whereas it does take a noticeable amount of time for the first block to hit the next one.

      if i==25 would only result in the last block falling down, the rest would remain standing.a

      • LovableSidekick@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        16 days ago

        Oh that makes sense - apparently bpy.ops has a current context that the transform acts on. Instead could you move the transform call outside of the loop after establishing the first block as the context? That’s how I would instinctively do it, to avoid checking i in every iteration when I know it can only be true once. Totally minor critique lol.

        • monica_b1998@lemmy.worldOP
          link
          fedilink
          arrow-up
          2
          ·
          16 days ago

          that makes sense! if I find the time, I’ll update it. it needs to updated to a newer Blender version anyway…