quackgyver's Forum Posts

  • This may or may not be relevant in your case but as far as I understand the Multiplayer plugin doesn't actually work with a lot of mobile carries because their NATs are preventing packets from being transmitted. Apparently setting up a TURN server is required for getting around this, but that's not a service that Construct offers.

    I've raised this as an issue before since I think it renders the Multiplayer plugin moot if it doesn't come with the necessary solutions to make it work on all platforms. For now we'll just have to accept that we can't assume that the Multiplayer plugin will work for mobile- and tablet users (unless they're connected to a wifi).

  • Hi,

    I've never managed to get audio working in preview mode in Safari on macOS and today I decided to investigate why.

    Apparently there's a cross-domain error preventing it from loading:

    [Error] Fetch API cannot load editor.construct.net/[...].webm due to access control checks.

    Anyone know how to fix this, so that audio will work in preview mode in Safari on macOS?

  • in the spritefont properties, you have to set the character size (which for your font should be 7x9)

    and you have to tell it what the character set is (which letters appear in your font, and what order they are in), which for your font is:

    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

    (note the first character before the ! is a space character, so don't forget it or all your letters will be off by one.)

    I have. Everything's been set up as intended.

  • Hi,

    For some reason my Sprite Font object won't load.

    These are the events:

    Here's a sample file: quackgyver.com/junk/font_test.c3p

    Anyone know why this won't display?

    Thanks in advance.

  • Backslash \

    You need it only if you have open and closed brackets like: \[] or \[hello]

    This doesn't seem to be a universal escaping the character itself though, because it doesn't seem like it works within an already opened BBCode tag.

    Is there any way to escape bracket characters regardless of whether it's inside a BBCode tag or not?

  • This is another case of the "newly created instances are not fully available until the next top-level event" quirk.

    If you create an object, you can use it in the same event and sub-events, but not in sibling events, until the next top-level event. Since those events are all in a group, the newly created object is not available in subsequent events, until the end of the group (which is the "next top-level event" point).

    The reason for this is to make the event engine fast, it assumes the internal data structures do not change while running events. Creating an instance changes the internal data structures, but this change is delayed until the next top-level event when it is safe to update the internal data structures, because it's not half-way through running events. We could remove the limitation by slowing down the entire event engine for everyone (i.e. adding regular checks for "did the internal data structures change" through the entire event engine). But that makes all Construct games slower just to solve this quirk, so it doesn't seem a reasonable thing to do. And if we break the assumption that internal data structures do not change, it ends up with crash bugs - and user reports of exactly those crashes is what led to the current "wait until next top-level event" workaround. So the quirk lives on.

    Ah, thanks for the clarification. That explains things.

    Is there anywhere where I can read more about how the event engine processes things, and especially in regards to quirks that might be good to keep in mind? I feel like I frequently run into problems like these.

    Also, thanks to everyone who took the time to help figure this out. Thank you.

  • Can you escape brackets when inputting SpriteFont text, without disabling BBCode?

  • Actually, there are no instances of Console object at the moment that event is triggered. The first instance is already destroyed, and the second is not yet created.

    I still don't fully understand when the newly created instance becomes available for subsequent events.. It supposed to be accessible in the next top-level event, but it's not always the case.

    That's so strange to me. I'd expect a destroyed object to be completely cleared before moving on to the next line, and I'd expect a created object to be fully available before moving on to the next line.

    I hope that the Construct team can jump in and provide some answers.

  • Funny enough, the problem is with the Console object. You are destroying one instance of Console and creating another in the same tick. So I'm guessing the text "You're connected to the internet." goes into the deleted instance.

    Don't destroy Console on start of the layout and you'll see that everything works correctly.

    Wow, you seem to be correct.

    I'm confused though. Shouldn't a deleted object be completely cleaned up before moving on to the next line? It doesn't make any sense to me that a deleted instance would somehow remain until the end of the loop, and be able to cause bugs throughout the entire loop.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Can you share your demo project? I tried the same code and it works fine for me.

    Sure: quackgyver.com/junk/v0001.c3p

  • Yes, I know it can be used this way. I meant - does it work when you move "trigger once" to the parent event?

    No. The root event stops firing if "Trigger once" is added to it. However, if I move the root event to the top, as I illustrated in my original post, then it works.

    So, these all work:

    And these don't fire at all:

    EDIT:

    There seem to be some major glitch with the forum software that's preventing my attached images from showing up. I've uploaded 6 images to this post, so hopefully they'll be visible to everyone. For me they're only showing on and off.

  • "Trigger once" needs to be the last condition in the event. Don't put it in the sub-event.

    Having no other conditions in the event automatically makes it true. It's not true that "Trigger once" can't be used as a sub-event. It can be used on any level.

  • The last "Trigger once" line doesn't fire at all in this case:

    While in this case it does:

    I just can't figure out the logic behind this. "Trigger once" should logically always fire once on the first tick within an event which condition is true, so why do I need to move it to the top for it to work?

    What's stranger is that the root condition still fires, so I could for example do this:

    But as soon as I move the "Console.Text"-action down into the "Trigger once" event, it just won't fire.

    Anyone know why this is? Because I just can't figure it out.

    EDIT:

    Just to be clear, the end-goal here isn't to print the text, it's to figure out why "Trigger once" isn't firing in this case.

  • I found the solution myself. Apparently Construct now applies colors to SpriteFont objects by default, regardless of the color specified within the image file.

  • I've been using SpriteFont for a long time, but it suddenly won't load right.

    See images:

    As you can see the settings are okay, and that it for some reason displays jumbled black symbols despite the fact that the image is entirely white.

    Anyone know how to fix this?