Navigation

    Fuze Arena Logo
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Help
    • Discord

    Function causes a crash

    Bug Reporting (FUZE 4 Nintendo Switch)
    crash bug function
    8
    48
    3321
    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.
    • vinicity
      vinicity F last edited by vinicity

      What is trail[0] = [{ball.x,ball.y},moving] supposed to accomplish anyway?

      It looks like you are assigning an array containing a vector and something else to trail[0]?

      And then you treat the result as an int?

      1 Reply Last reply Reply Quote 0
      • Hector1945
        Hector1945 F last edited by

        No I treat the result as an array of a vector and a boolean. The vector is used to log the 50 most recent positions of the ball, in order to make a trail that follows the exact path of the ball, like in the reference video. The "moving" boolean is used to determine if a trail should actually be drawn to that point. There might be a better way of doing this, but I haven't figured it out.

        1 Reply Last reply Reply Quote 0
        • vinicity
          vinicity F last edited by

          Sorry, I didn’t read the code properly. Now I see how you do it.

          Not sure if it would help, but maybe using a struct would be better and then having an array of structs instead?

          1 Reply Last reply Reply Quote 0
          • vinicity
            vinicity F last edited by vinicity

            Did you change the loop? Backwards loops in Fuze do not work as one would suspect.

            I find it is always better to use a while loop instead and handling the counter yourself in those cases.

            1 Reply Last reply Reply Quote 1
            • Hector1945
              Hector1945 F last edited by

              You mean making a for() loop as a while() ?

              1 Reply Last reply Reply Quote 0
              • vinicity
                vinicity F last edited by

                Yes, exactly.

                1 Reply Last reply Reply Quote 0
                • Hector1945
                  Hector1945 F last edited by

                  Wait, I'll try the structure idea first.

                  1 Reply Last reply Reply Quote 0
                  • vinicity
                    vinicity F last edited by

                    Another thing I would try is to use a struct, and instead of line 70, do

                    trail[i + 1].location = trail[i].location
                    trail[i + 1].isMoving = trail[i].isMoving
                    
                    

                    ...or similar.

                    1 Reply Last reply Reply Quote 1
                    • Hector1945
                      Hector1945 F last edited by

                      Ok, so switching to a structure doesn't appear to change anything and I still get the crash, so now I try the while()

                      1 Reply Last reply Reply Quote 0
                      • vinicity
                        vinicity F last edited by vinicity

                        I hope something works. I’m not close to my Switch at the moment (not until next Monday actually 😢), so can’t really try out any ideas.

                        Maybe you can share your program, and I’m sure there is someone who can figure it out?

                        1 Reply Last reply Reply Quote 0
                        • Hector1945
                          Hector1945 F last edited by

                          Yes I think that's what I'm going to do, because I'm really starting to run out of ideas of what could cause this...

                          1 Reply Last reply Reply Quote 1
                          • Hector1945
                            Hector1945 F last edited by

                            The program is now live. Here is the code of you want to experience this yourself: NX29ZPFDDA. Please contact me if you have any idea of what is causing the crash.

                            1 Reply Last reply Reply Quote 1
                            • xevdev
                              xevdev F last edited by

                              When you run the program with fps meter showing your using a megabyte a second.
                              I put deleteshape(trailportion) after drawshape(trailportion)
                              And moved
                              Shpball = create etc
                              Shpground and shpnet out of the function drawsprshapes()
                              This slowed down the memory loss but it's still losing memory (Maybe?)
                              For fps go to settings then preferences and you'll see it towards the bottom
                              The problem your having is you are creating a new thing every time you call these functions.
                              This is a pretty neat program. Well done.

                              1 Reply Last reply Reply Quote 2
                              • xevdev
                                xevdev F last edited by

                                Oh and it's possible for the ball can come to a complete stop.

                                Hector1945 1 Reply Last reply Reply Quote 0
                                • Hector1945
                                  Hector1945 F @xevdev last edited by

                                  @xevdev I put a timer to reset it if it doesn't move for 1 second

                                  1 Reply Last reply Reply Quote 1
                                  • Hector1945
                                    Hector1945 F last edited by

                                    Anyway, thanks for saying it's a neat program, and thanks for the idea of deleting the shapes, because that apparently solved the issue. I don't really understand because wouldn't the old value be deleted anyway when you assign a new one to a handle ?

                                    xevdev 1 Reply Last reply Reply Quote 1
                                    • Jongjungbu
                                      Jongjungbu F last edited by

                                      Xev is right that you’re creating new shapes hundreds to thousands of times. This may probably overrunning the video buffer maybe. I adjusted that in my copy of your program, but still have random crashes.

                                      The major problem I see causing crashing is in your DrawTrail() you are attempting to copy an array value that is out of bounds.

                                      ‘trail[i+1] = trail[i]’

                                      Here once every loop, i = -1
                                      This results in trail[0] = trail[-1], the latter of which is out of bounds and it crashes.

                                      1 Reply Last reply Reply Quote 2
                                      • xevdev
                                        xevdev F @Hector1945 last edited by

                                        @Hector1945 create will create a new one apparently.
                                        So any create should be outside of a function like the createcircle because you only need to make this once.
                                        Within a function or loop just deleteshape() after you finished using it.
                                        I'd say when you use create it using the same handle it would make the old handle unavailable but it would all be still there.

                                        1 Reply Last reply Reply Quote 3
                                        • vinicity
                                          vinicity F last edited by

                                          Be aware that memory leaked by creating shapes and not using deleteShape() afterwards is not returned when returning to the Fuze editor. So each time you run your program, the memory will be less than before, and this will eventually cause a crash somewhere. You have to restart Fuze altogether to get the memory back.

                                          1 Reply Last reply Reply Quote 4
                                          • Hector1945
                                            Hector1945 F last edited by

                                            So I just modified the program to delete every shape after drawing it. The free memory doesn't tick down the way it used to, so that's good, however I still get the crash...

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