Announcement

Collapse
No announcement yet.

Cube Generation - Infinite Loop Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Cube Generation - Infinite Loop Problem

    Afternoon all, Thanks for taking a look at my problem!

    I am currently toying around with some very small scale cubed map generation and seem to have come across a bit of a stumbling block, which has had me racking my brian for nearly a week trying to come up with solution to get around this infinite loop problem. At the moment, I am generating blocks using the instanced static mesh component which poses a few problems in regards to storing previous column heights and things, hence why I am trying to implement this work-around.

    So the following break-down is a overview of how it should work:
    1. Add x number of cubes to the right and left of the 'Master Cube'. [Working]
    2. For each cube added in step 1, add x number of cubes above array item. [Working]
    3. Add x rows of cubes infront of 'Master Cube' to create rectagular play area. [Working]
    4. For each cube added in step 3, carry out a line trace to identify if there is a blocking hit to the left of the cube, if TRUE then add cube above array item, if FALSE then stop adding cubes above array item and delete the last added cube. [Not Working]

    Step 4 is where I am running into problems, as I need the adding of cubes above the array item to continue until the line trace returns a false blocking hit and I just cant seem to jimmie anything together which will not kick up an infinite loop warning.

    Below is a snapshot of the blueprint as is, I have added and removed so many different variations of branches and while loops that I had thought would work but I have had no real success thus far. So the image is just the general operation without the looping involved, hence why I have come to you guys to recommend a suitable method.

    Click image for larger version

Name:	py5sqKp.jpg
Views:	1
Size:	113.6 KB
ID:	1181932

    Link for ease: http://i.imgur.com/py5sqKp.jpg

    My problem seems to be detecting when the line traces are coming up false and then getting out of the loop with that item of the array, if that makes any sense? For example, we enter step 4 of the process and start adding instacnes above item 1 of the array, then once the line trace returns a false a boolean variable would switch to false, completing the while loop, however I need to be able to enter that loop again with the second item of the array, so I set the boolean variable to true for each item of the array and I believe this is where the infinite loop is originating.

    Ach, I dont know but if anybody would like to take a look at the wall of text above and try and help out, that would be greatly appreciated!

    Thanks, Connor.
    Twitter: ItsConnorReid

    Blueprint Tutorial | Basic Sprint - Beginner Friendly | Forum | Wiki
    Blueprint Tutorial | Stamina Decay/Regeneration Implementation | Forum
    Blueprint Tutorial | Stamina/Progress Bar Implementation | Forum

    #2
    You probably want to reset bInitialPass on completion rather than each time you enter the loop body.

    From what i gather, youre simply making an x by y grid of cubes correct? Why not just use a 2D array and spawn them with a pair of for (each) loops?

    You seem to be going about this in an overly complicated way when you can just spawn them in a logically precise fashion
    Last edited by 6ixpool; 05-10-2016, 06:34 AM.
    Need another dev on your UE4 project? Send me a shoutout and I'll lend a hand

    Comment


      #3
      Originally posted by 6ixpool View Post
      You probably want to reset bInitialPass on completion rather than each time you enter the loop body.

      From what i gather, youre simply making an x by y grid of cubes correct? Why not just use a 2D array and spawn them with a pair of for (each) loops?

      You seem to be going about this in an overly complicated way when you can just spawn them in a logically precise fashion
      That's probably what you need to do, also check this post: https://forums.unrealengine.com/show...t-Clone-Source
      Github - YouTube - Unreal Slackers - KITATUS

      Comment


        #4
        Hi folks,
        Thanks for the quick responses.

        Originally posted by 6ixpool View Post
        You probably want to reset bInitialPass on completion rather than each time you enter the loop body.
        The bInitialPass variable is being used to switch between adding an instance above either the item in the array or the newly added instance.

        Originally posted by 6ixpool View Post
        From what i gather, youre simply making an x by y grid of cubes correct? Why not just use a 2D array and spawn them with a pair of for (each) loops?
        Apologies if my initial post was not very clear, what I am trying to achieve is the generation of a x by y by z grid of cubes, in which the z or 'height' is determined using line trace results from each newly added instance.

        Originally posted by Zarkopafilis View Post
        That's probably what you need to do, also check this post: https://forums.unrealengine.com/show...t-Clone-Source
        Thanks Zarkopafills,
        I shall take a look.
        Twitter: ItsConnorReid

        Blueprint Tutorial | Basic Sprint - Beginner Friendly | Forum | Wiki
        Blueprint Tutorial | Stamina Decay/Regeneration Implementation | Forum
        Blueprint Tutorial | Stamina/Progress Bar Implementation | Forum

        Comment


          #5
          3D array then?

          Also, if im reading it right, you will NEVER go through the "true" branch becauae you ALWAYS set bInitialPass to false BEFORE you pass the branch.
          Need another dev on your UE4 project? Send me a shoutout and I'll lend a hand

          Comment


            #6
            Hi 6ixpool,

            It is so typical that once I make a post to the forum, I seem to have resolved my issue.
            Was just a case of looping back a branch to and changing a few things.

            Once it is in a good state, I'll post a photo up here for anybody who might need it going forward!

            Thanks again,
            Connor.
            Twitter: ItsConnorReid

            Blueprint Tutorial | Basic Sprint - Beginner Friendly | Forum | Wiki
            Blueprint Tutorial | Stamina Decay/Regeneration Implementation | Forum
            Blueprint Tutorial | Stamina/Progress Bar Implementation | Forum

            Comment

            Working...
            X