• netizen
    link
    fedilink
    English
    arrow-up
    18
    ·
    3 days ago

    I remember having to program a trap for double-clicking buttons in an application.

    Then I had to implement a penalty for triple-clicking.

    Later, I converted it to a progressive incremental penalty.

    • FunnyCoderOP
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      3 days ago

      I’m actually surprised no one’s roasted my math in ShatterCanvas.xaml.cs yet—I’m basically faking the ‘gravity’ by just incrementing VelocityY every frame. It’s surprisingly lightweight for how many polygons are flying around.

      • leburb@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        7
        ·
        3 days ago

        What is acceleration other than increase in velocity over time? Nothing to roast!

        • FunnyCoderOP
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          Haha, fair point! I guess I spent too much time looking at the code and thinking “this feels too simple to work”. But hey, if it hits the bottom of the screen and satisfies the VelocityY math, it’s a feature, not a bug. Glad to see another dev who appreciates the simple approach.

          • locuester@lemmy.zip
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

            I remember the first program I wrote where I implemented gravity. I too was amazed at the simplicity. But that simplicity is only in hindsight. You stumbled into physics when you thought you were just programming.

            • FunnyCoderOP
              link
              fedilink
              arrow-up
              1
              ·
              2 days ago

              That’s a beautiful way to put it. I definitely went from “how do I move a polygon” to “wait, why does this feel like it has weight?” in about 10 lines of code. It’s wild how much of the physical world is just hidden in a simple $v += g$ loop. Definitely an “ah hah!” moment I won’t forget. 〒▽〒

        • FunnyCoderOP
          link
          fedilink
          arrow-up
          2
          ·
          2 days ago

          Phew! Glad I haven’t offended the ghost of Isaac Newton. I half-expected someone to tell me I needed a full-blown physics engine just to drop some glass polygons on the taskbar.

    • FunnyCoderOP
      link
      fedilink
      arrow-up
      3
      arrow-down
      2
      ·
      3 days ago

      Incremental penalties are the way! I see you’re also a student of the ‘Hostile UX’ school of design. Shaking the window is basically the ultimate progression of button spam—once you exceed the velocity threshold, the UI simply quits on you. ψ(`∇´)ψ