quackgyver's Recent Forum Activity

  • I have the following use case:

    • Lots of different object types are on-screen (e.g. sprites, 9-patch etc.) and moving around.
    • These moving objects will be randomly changing in z-depth.
    • Changing these object types in order to achieve a solution is not a possibility.
    • The objects and object types are many, meaning that adding them to families in order to run any checks would be cumbersome (but possible if it's the only viable solution).
    • I need to check if true, only when the player clicks on a specific sprite (i.e. I only need to run the check for this specific object) when it's not obstructed by another object.

    Or to put it in more simple terms:

    How can I check when a specific sprite object is not visually obstructed by any other visible object, at the exact point where the player is clicking on it?

  • Construct projects are based on open formats like JSON, so there's nothing stopping anyone from creating an open source competitor to Construct. As far as I'm concerned what Construct offers is a convenient interface for managing open projects rather than a locked-in engine. I think that's a great compromise for a subscription-based game development toolkit, and it ensures that we can develop solutions ourselves in the off chance that Construct 3 would stop receiving support.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It doesn't seem like iframes can be created or destroyed via events (even if the iframe already exists in another layout).

    Iframes only seem to work if they've been placed in a layout via the layout editor.

    Is this a bug? And if so, how can you create iframe instances via the event editor rather than having to place them via the layout editor?

  • 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.

quackgyver's avatar

quackgyver

Member since 18 Sep, 2014

None one is following quackgyver yet!

Connect with quackgyver

Trophy Case

  • 10-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

14/44
How to earn trophies