WackyToaster's Forum Posts

  • runtime.callFunction doesn't take a function as parameter? If you want to call this function you can just write.

    Inventory__GetScrollY()
    

    runtime.callFunction is specifically made to call functions in an eventsheet via a String. construct.net/en/make-games/manuals/construct-3/scripting/scripting-reference/iruntime

    Or am I misunderstanding something about your code? Doesn't seem like this function would return a string.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I understand that there's frustration but that's just the downside of using an engine in the first place. Do you want full control? Go with a framework instead, phaser comes to mind. It even has a bloom effect. Do you want absolute power? Make your own engine. With an engine you are largely at the mercy of whoever maintains it, with the benefit of having a large set of tools just ready to go. These tools are basically what you pay for.

  • Hmm last I checked the spritefont object exists because it's faster than the text object, especially when updating the text every tick. Not sure if that's up to date...

    I'd suggest to make a simple test. Think about the maximum amount of text and animated bbcodes you'd realistically have in your project and just build a "worst case" scenario with tons of animations etc. See if you run into any issues with the normal text object. Because if not, I'd go with the normal text object over the spritefont.

  • Is it possible that you have "Bundle addons" enabled in the old projects? In that case it could have bundled an old version of the addon, and the new version you have has a bug. When bundle addons is enabled, the old version is used instead of the newer one that's installed.

  • This may come down to float rounding error, which is a byproduct of how computers work. with floats. I'm not sure if rounding works with scientific notation but you can try "set text to round(variable)"

    If that doesn't work you might have to employ some custom logic to extract the fraction, round it and put it back together, something like that (off the top of my head, I didn't test this)

    set text to round(int(tokenat(str(variable),0,"e"))) & "e" & tokenat(str(variable),1,"e")

  • I think it's still worth a shot to report it along with the project that causes the crash even if it's not a new project. Have you tried shaving the project down? Remove a bunch of objects, events (that seem unrelated to the crash) save it as a new project and try to crash again. Keep shaving parts of the project off till as little as necessary remains for it to crash, then file a bugreport with it. Maybe you even can identify a certain part in the project that, when deleted, fixes the crash. That'd likely be valuable information for debugging. If possible, you can also send the full project to someone else to confirm it's not some random bs that causes the crash, like a chrome plugin mucking things up or some driver issue/hardware issue.

  • That's actually a good question. Do you mean during the game or in the editor? I've encountered this issue (ingame) and I solved it two different ways before:

    Draw everything with tilebrush, then manually draw the edges with the appropriate tile. This was easy in my case since it is always entirely closed all around.

    OR add additional space all around the tilemap and just use the tilebrush normally. This will kind of offset your tilemap grid so it's a little awkward to do so.

    I think a setting to change the behavior on map edges could be interesting, but it's probably a little weird to implement since tilemaps can have weird sizes (including off-grid sizes) and also can have tiles outside the actual tile area, which can also be a little weird (draw tiles, resize tilemap smaller -> the tiles are actually still there, but invisible outside the actual tilemap object)

  • The easiest is using the system expression wallclocktime

    construct.net/en/make-games/manuals/construct-3/system-reference/system-expressions

    This gives the time in seconds. Multiply by 1000 and you got milliseconds.

  • I'd not update EXP every tick. I'd only update EXP when it actually needs to be updated aka when you gained some exp (via a function perhaps). It's hard to tell what's going on in your project, some screenshots of events in question would help already if you don't want to share your project.

  • I mean there isn't much to send... make sure something is actually happening on screen that can be recorded. I actually fell for that trap thinking it's not working, except I just recorded empty background and put a video of empty background on the empty background. Other issue could be that if you record with automatic, it can record either webm or mp4 depending on your system, so putting the source could end up in the wrong one (mp4 in the webm source), not sure if that would break it but it's possible.

  • It was this thread by yours truly ~3 months ago

    construct.net/en/forum/construct-3/scripting-51/testoverlap-quadtree-179444

    It is indeed a system action.

  • I still forget whether I need == or ===

    Haha, most cases will be ===, you rarely need == imo

    Yes go and learn, it's probably worth it! Should be easy to pick up if you have experience with c# and c++

  • This works fine for me?

  • Tbh, I need to learn to do this. Ashley told me about subclassing and I was like ermergosh. The problem is that, if I wanted to use that feature, I would need to move more into JS, while the behaviors let me still use the event sheet.

    It's easily one of the best features out there and I have a hunch it's woefully underutilized for how easy it is to set up. Subclassing and mixins should be high up on your list if you want to make modular stuff imo.

  • How about this:

    1. The bird does it's thing and flies off screen

    2. Instead of destroying it, just suspend it (disable it's behavior, there are various ways to do this: e.g. disable a group, set a boolean to false or a state machine) use the timer behavior to start a two second timer on the bird

    3. On timer, reset & enable the behavior of the bird again (as in give it back the rock) and set its position to Y = whatever height you want it to patrol and X = player.X + screen width/2 + some offset so it starts off-screen

    4. This would also be the place were you can test if the bird spawns outside of its patrol area (if player.X + screen width/2 + some offset > rightWall.X) If that's the case, you can instead just start the timer again, which would mean every 2 seconds the bird will check if the player is in the right position for the bird to spawn inside the patrol area.