logo hyperPad Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Login

    Else if is broken

    Scheduled Pinned Locked Moved
    Bug Reports
    4
    56
    2.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Deeeds @Aidan_Fire
      last edited by Deeeds

      @Aidan-Oxley I'm 99% sure your Else, in this situation, will get invoked (called) before the ifs reach a conclusion that they should turn your Else behaviour off.

      Aidan_FireA 1 Reply Last reply Reply Quote 0
      • Aidan_FireA
        Aidan_Fire @Deeeds
        last edited by

        @Deeeds Already checked that. I gave speed and rotation a value, then made Else and Stuff behaviour bundles have some visual effect behaviours, and it all worked as intended.

        1 Reply Last reply Reply Quote 0
        • Aidan_FireA
          Aidan_Fire
          last edited by

          I really like how neat the execute sequence of behaviours is!

          D 1 Reply Last reply Reply Quote 0
          • D
            Deeeds @Aidan_Fire
            last edited by

            @Aidan-Oxley Where are you using execute sequence here?

            Aidan_FireA 1 Reply Last reply Reply Quote 0
            • Aidan_FireA
              Aidan_Fire @Deeeds
              last edited by

              @Deeeds Sorry, I mean the order in which behaviours execute under an event, not the Execute Sequence behaviour. Like how they do each branch first, then move on left to right, but only after each whole branch is finished.

              D 1 Reply Last reply Reply Quote 0
              • D
                Deeeds @Aidan_Fire
                last edited by Deeeds

                @Aidan-Oxley That's not how it works. If you set up anything with a duration in a branch, you'll see that it jumps from left to right as fast as it possibly can, only downward movement through a branch is stalled by the durations.

                Similarly, anything that takes a long time to create a result isn't worried about, either... I think.

                I'm pretty sure that calls across (left to right) are blind, as fast as can be done... so far as I can tell.

                Aidan_FireA 1 Reply Last reply Reply Quote 0
                • Aidan_FireA
                  Aidan_Fire @Deeeds
                  last edited by Aidan_Fire

                  @Deeeds That’s different. I’m talking about behaviours with no duration at all. As soon as they have a duration and behaviours connected underneath them, stuff changes. But still, I tested it, and it works. Idk about the more power hungry behaviours, maybe we should test that out too. But I’ve never ever had a behaviour to the right in a row activate before one to the left finishes (other than behaviours that have a duration).

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Deeeds @Aidan_Fire
                    last edited by

                    @Aidan-Oxley I don't think so. I think you're just getting lucky, that the conditionals are happening fast enough (in this case) to get to the behaviour off before calling your Else behaviour. Push this hard, 100x, with others things happening, and I'm reasonably sure that you're going to get a few false elses firing...

                    @hamed any chance of this? Or do you have some kind of filtering that's making sure branches complete before moving from left to right?

                    Aidan_FireA 1 Reply Last reply Reply Quote 0
                    • Aidan_FireA
                      Aidan_Fire @Deeeds
                      last edited by

                      @Deeeds Getting lucky? I’ve used hyperPad for like 5 years, made hyperPad super laggy, done all sorts of stuff, behaviours ALWAYS execute left to right.

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        Deeeds @Aidan_Fire
                        last edited by

                        @Aidan-Oxley I don't doubt they execute left to right, I'm doubting that they wait for their branch to finish before going further right to make the next call.

                        Are you 100% sure?

                        As to making it laggy... I can do that with ease. I think anyone can ;)

                        Aidan_FireA 1 Reply Last reply Reply Quote 0
                        • Aidan_FireA
                          Aidan_Fire @Deeeds
                          last edited by Aidan_Fire

                          @Deeeds Left to right, completing the whole branch before moving on to the right. Unless the branch has some sort of intentional duration. It worked in my test project, that’s enough to convince me. Could try put some loops in there and see what happens.

                          1 Reply Last reply Reply Quote 0
                          • Aidan_FireA
                            Aidan_Fire
                            last edited by

                            Just tried this:
                            0_1513257788809_61544695-5D7D-4B4D-808E-C7B5D4BE4B37.jpeg
                            HyperPad froze for a second to do the Loop. The label turned out to be 2, so it did wait for the first (left) branch to finish before moving to the next (right).

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Deeeds @Aidan_Fire
                              last edited by

                              @Aidan-Oxley

                              You're officially qualified as a programmer.

                              Finding the cheapest, quickest, easiest, narrowest way to prove a hypothesis; that's exactly what programmers do. Every.single.time...

                              Drop the loop into a node one lower. Call a (for example) behaviour bundle first, that then calls the loop.

                              If that works as you expected, then drop the behaviour bundle's calling into a conditional (if) that chooses to call the bundle based on external criteria.

                              If that's still performing as you expect, then nest that inside something else, that does something else.

                              Keep going until your find something that breaks your expected result and hypothesis.

                              Then make a new hypothesis, and begin thoroughly testing that. And consider yourself to have graduated from programmer to coder.

                              1 Reply Last reply Reply Quote 0
                              • iTap DevelopmentI
                                iTap Development
                                last edited by

                                @Deeeds I agree that elseif is super useful....but @Aidan-Oxley is right, if you really have to, you can get by without them in many situations.
                                Not ideal, but works.

                                1 Reply Last reply Reply Quote 0
                                • iTap DevelopmentI
                                  iTap Development
                                  last edited by

                                  @Deeeds I’ve had else’s stop working too....I think it happened when I duplicated and rearranged ifs and elseifs a lot of times.
                                  But I’m looking froward to their updated else’s!

                                  1 Reply Last reply Reply Quote 0
                                  • HamedH
                                    Hamed Admin
                                    last edited by Hamed

                                    Behaviours are depth first. ie, it will finish the chain (unless it hits a duration behaviour) then go on to its sibling to the right. @Deeeds can you please stop arguing for the sake of arguing? Thanks.

                                    D 2 Replies Last reply Reply Quote 0
                                    • D
                                      Deeeds @Hamed
                                      last edited by

                                      @Hamed Where is this in the docs?

                                      1 Reply Last reply Reply Quote 0
                                      • HamedH
                                        Hamed Admin
                                        last edited by Hamed

                                        Its not in there. Should be but we overlooked it sorry.

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          Deeeds @Hamed
                                          last edited by

                                          @Hamed It is not for the sake of arguing.

                                          it is to ascertain something as fact because I don't want to waste more time guessing what's not documented, and navigating around bugs and other things that are unknown and speculations.

                                          Just like you, my time has a value.

                                          1 Reply Last reply Reply Quote 0
                                          • HamedH
                                            Hamed Admin
                                            last edited by Hamed

                                            Well until our documentation catches up to usable standards, the guys and girls on this forum know what they're talking about. I trust them, you should too. If something is blatantly wrong, I'll jump in and correct it.

                                            D 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post