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

    How to use "For Each" tag loop on each object

    Scheduled Pinned Locked Moved
    Help and Support
    3
    116
    4.7k
    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
      last edited by Deeeds

      Having selected a tag, and started the loop, imagine I want to get the position of each of the tagged objects and add it to an array.

      How do I get each tagged object's position? Or ANYTHING from each object? There's no apparent reference or binding, or knowledge of each object ni the loop, that I can see.

      I know this seems like a ridiculous question, too simple.

      But think about it in hyperPad:

      Get Position Behaviour requires an object be selected. If the For Each Tagged Object loop selects an object of any sort, which it does automatically, it's only operating on one object.

      If it's selecting a tag, in Get Position, what is reported back? An array with the position of every tagged object, each time the loop goes through every object with this tag?

      I'm definitely missing something because the example for Loop For Each tag specifically says this:

      Selecting a tag and the "For Each" loop style allows you to calculate distance to each object in a group separately rather than using the average

      That's pretty cool.

      HOW?

      The loop provides an index, not access to the currently selected object. In fact, it seems, the loop appears/is oblivious to which object selected during its loop.

      Or I'm missing something. I'm definitely missing something.

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

        @Deeeds if you use get position with the same tag selected for it as the “for each” it should loop though and get position of each. And I assume you know how to add to array.

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

          @iTap-Development This is the first thing I did. And the array is empty. Nothing ever gets sent to it.

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

            @iTap-Development To explain further, this is EXACTLY what I'm trying to do. Add object positions to arrays.

            I'm making a facility where I can place dummy objects as I desire and then collect all their locations via a For Each loop and replace them with the spawned "instances" of the real objects. An editor within an editor for reasons required to get around the lack of referencing, nesting and attachment/grouping.

            I did this on the basis that I believed this particular behaviour would provide me the means to do this.

            Yet it doesn't work. Or I can't find how to make it work.

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

              @Deeeds I know you HATE to share projects, but you wanna this time?
              Also, why are you setting id’s this way? Like I said, look at how I did it in my project.

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

                @iTap-Development Again. There are OTHER things I'm doing, that require this functionality.

                This isn't just one problem that needs to be solved. But this makes for a great example to demonstrate the conceptual capability, which in turn, if it works, should provide artistic freedom of some description.

                So, no... not going to share a project.

                Instead, show me that it works.

                I've found so many things that don't work that I'm far beyond doubting myself, and already eliminated any possible user error on my end.
                ly.
                The only things left are:

                It's broken

                or

                It's counter intuitive and requires additional actions to setup "correctly".

                Show me it works. I don't think it does.

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

                  @iTap-Development As to "why am I setting IDs this way?

                  Can you tell me why your way is better?

                  I've explained why I think my way is better.

                  1. Easy to comprehend and articulate and do (SIMPLE)
                  2. Uses the already available index that's part of spawning
                  3. Instant, no need to build in waits for things to be set/found/done

                  Your way, in simple words, why is it better?

                  You haven't explained how or why you set up things the way you do. And I'm really not fond of waiting ten minutes for my project to "save" just to see something that I might not understand, may not be better and you haven't suggested is better, or why.

                  You haven't even made a case for why my way is bad..

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

                    @iTap-Development

                    The last remaining potential problems?

                    I was doing the For Each loop on a UI element (a label) and thought this might be a problem, so I put it on a normal object. No change.

                    I was searching for tags on complex objects that do a lot of moving. Put tags on simple objects and removed the complex ones.

                    But no, that's not it.

                    It's the ******* (curse word edited out, use your imagination, add rage... then...) ARRAY modifier of type VALUE!!!

                    In the entire rest of the known universe, that's what we're doing. Modifying an Array of Type Value. It's an array that stores VALUES!!!

                    Meaning... it's an array of type Value!!!!

                    WTF*

                    *The decision behind this naming convention was probably focus group tested

                    Bah.

                    I have read the documentation again, and I still cannot figure out what an Array of Type Value actually is if it isn't an array of type value. Something to do with JSON values, but I'm not sure JSON means what they think it means, or what their intention was with this absolutely ridiculous nomenclature.

                    iTap DevelopmentI D 3 Replies Last reply Reply Quote 0
                    • iTap DevelopmentI
                      iTap Development @Deeeds
                      last edited by

                      @Deeeds ok, this is how I did it in my project. Basically, when there is a “request” for a spawned object(in this case the mate wanting a buddy), the wanted ID is added to an array. That array holds all the requests. The array then takes the first index(that would be the oldest request, assuming you append the requests) and spawns the object and then the object sets its ID based on the value in the array, then triggers the array to spawn the next object. But don use the project I gave the link for, because I just realized that it isn’t right....at ALL! I need to fix it.

                      I’ll make a loop example.

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

                        @Deeeds so you want it to loop through objects and add there positions to an array? Right?

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

                          @Murtaza There was a movement to define and steadily and increasingly make a meaningful and less ambiguous and scattered approach/definition to use of the word "Type" in programming over the last few years.

                          The result is this:

                          Value Types and Reference Types on the one hand, and the type of objects (lower case) on the other.

                          Value Types get copied on assignment. Things like functional programming rely on this, almost in exclusivity, it would seem.

                          Reference Types we've already discussed, are those that point to the original... a reference.

                          Within reference Types there is the type of object, as defined by its class. Notice I'm using a lower case t for this definition of type.

                          I'm generally and genuinely curious.

                          What is a Value type of array in hyperPad. I know you say it's a JSON something... then your writing gets lost and I lose any hope of understanding what you're on about.

                          JSON arrays are, generally speaking, of only one type of object. Be it ints, strings, whatever... so not altogether dissimilar from any other array in most other languages that are not JavaScript, and those few really dynamic environments where an array can contain a lot of different types. This is, if I remember rightly, one of the only real reasons JavaScript needed JSON arrays, so that it could be sure of what type was in the array, and only that type.

                          I don't really get what you've done here. Sometimes your Value type array works as a normal array might. Other times it does things I can't explain, or simply doesn't respond. And I'm sorry, I don't understand the documentation on the matter, at all, thin as it is.

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

                            @Deeeds here! http://bit.ly/2jKzU7X

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

                              @iTap-Development THANK GOODNESS I DID NOT LOOK AT THAT PROJECT.

                              I'm already confused enough about arrays and spawning and IDs in this clusterfuck of an environment.

                              Not having references and instances is doing my head in.

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

                                @iTap-Development Again, just explain WHY it's better. You've done the hard part, explaining how it works.

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

                                  @iTap-Development and tell me why my way is inferior or suboptimal. Cause my way works. And circumvents the problems I've had with hyperPad so far.

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

                                    @Deeeds I did explain how it works.

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

                                      @iTap-Development explaining how something works, yes. I know. I acknowledged that you did that.

                                      WHY is your way better?

                                      Why is my way lesser?

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

                                        @Deeeds simply that your way seems like more hassle, and uses more behaviors than are needed.

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

                                          @iTap-Development On the contrary. My way is far less hassle.

                                          It's a factory based on the Index. That's the first point I made, that my way is lean, mean and SIMPLE!

                                          Pump out units, use index as ID by virtue of the position property, no communications required, no array of IDs required, nothing. Just pump them out and stamp them with the index via position.

                                          AND QUICK!.

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

                                            @Deeeds ok! To each there own. Or should I say, for each? Did you check out the project?

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