Ashley's Forum Posts

  • The export file structure affects how URLs like those used in the AJAX object are used. It's documented in the manual.

    You should use 'Request project file' instead of 'Request URL' as you don't need to type in a URL, which saves you from problems like this.

    You should also always add error events and at least display something if they trigger, because it is so helpful during development. I'd guess the problem was not that it was clearing the arrays, but that it was failing to load anything at all, but you didn't know that because you didn't have anything checking for errors.

  • I discovered another potential backwards-compatibility issue this caused. Previously if you set the position of an object with the Platform behavior exactly adjacent to a Jumpthru object (e.g. setting its position to Jumpthru.X, Jumpthru.BboxTop) then the player would land on it. After this change the player now falls through the Jumpthru. This affected the Kiwi Story demo game which does this when the player walks through a door.

    Previously this essentially relied on the bug in the Platform behavior processing things in the wrong order. In Construct an object exactly adjacent to another one counts as overlapping it, and so moving a Platform object exactly adjacent to a Jumpthru is in theory the same as moving the Platform object halfway inside the Jumpthru. So in both cases the correct thing to do is to allow the Platform behavior to fall through the jumpthru, as it didn't land on top from a position not overlapping it. So with the latest fix the Platform behavior now does the correct thing of falling through, but due to the fact the previous bug meant things were processed in the wrong order it allowed it to handle it as landing on the Jumpthru instead.

    Unfortunately this means adjusting the Platform behavior to keep compatibility with the way it used to work is extremely complicated, as it means trying to retro-fit a subtle bug on to what is now the correct code. This also makes it a risky change as making such a change could easily break something else, and maintaining complicated quirks like this long-term is also challenging.

    Meanwhile the workaround is straightforward: it works fine if you position the player slightly above the Jumpthru instead of adjacent to it (e.g. setting its position to Jumpthru.X, Jumpthru.BboxTop - 1). So while once again we are always extremely reluctant to make breaking changes, I think we will have to go with adjusting projects instead of changing the Platform behavior. Hopefully this is easy as it is a straightforward change to make. I made this change in a single place in the Kiwi Story project and it fixed the problem. So this is another thing to watch out for with the latest change to the Platform behavior.

  • It definitely can't reset the picking every condition though - consider:

    + Sprite X < 500

    + OR: Sprite Y < 500

    You'd expect this to run actions with all Sprite instances picked that are left of X=500 or above Y=500. If it resets picking for every condition, it becomes essentially just "Y < 500" by itself, which will look broken again.

    The current design of OR blocks gets this right though.

    You could file a suggestion, but based on the problems I've shown, I don't see a better way it could work unfortunately! Then there's also backwards compatibility: we can't just change how thousands of existing projects work...

  • The latest releases also have ViewportMidX/Y system expressions which mean you don't need to calculate the mid-point yourself.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • There is nothing special you need to do. Family variables also appear under instVars.

  • It's a difficult feature to design. The problem is it can't work like a simple logical OR as it needs to involve picking, which is a unique aspect to event sheets.

    You can illustrate the difficulty with a counterexample. Suppose it did just work like a boolean test, and then you set up this event:

    + A overlaps B

    + OR: spacebar is down

    -> destroy A

    Now if you press spacebar, even A which are not overlapping B get destroyed. But this violates a key principle of events that actions only run on the instances which met the event's conditions.

    This would mean running the OR block like this:

    1. Test "A overlaps B". None are true and so none of either A or B are picked. Usually this means it doesn't run the event, but it's an OR block, so other conditions might be true, so keep checking them.

    2. Test "spacebar is down". If this is true then the actions can be run. However "A overlaps B" just unpicked everything. Should it then go and pick them all?

    If it worked like this I think you'd get equally-confused threads where people say "why does this OR block affect things that did not meet the condition?" I can't remember exactly as this was originally designed years ago, but I think this was originally the case, it confused people, and so the design was changed early on, but the new design still trips people up.

    Because of picking, I'm not sure there's any obvious or intuitive way to design OR blocks. Perhaps the naming is misleading and they should be called something else like "ANY" blocks, so people don't approach it with the mindset of a logical OR. That does also better match how they work, as an OR block really means "run all the conditions, and then run the actions if any condition was true".

  • Well, currently the intent is that you'd use Construct Animate for that.

  • I'm afraid this comes down to an unresolved issue with the HTML specification. Construct tells the browser to draw the text in the same place, but different browsers end up drawing the text in different places. Unfortunately I don't think there's much that can be done about it other than try to manually correct it.

  • The win32 export of NW.js should run fine on 64-bit Windows. I test every version that is published and every time the win32 one runs on my 64-bit Windows.

  • Why do you need them in Construct 3?

  • Our server doesn't itself refer to any public blacklists. I'd guess it's CloudFlare that implement the block.

    I have to emphasise, in general we can't help with these types of questions, as it's out of scope for what we can help with. If I knew of any conceivable reason our build service would be blocking anyone I'd have mentioned that first.

  • If you want a game to keep doing stuff in the background while the user is not using it, you don't actually need, and don't actually want, to keep the app live and running in the background. This seems to be a common misconception. All it will do is waste the user's resources/battery.

    Instead you can use the suspended/resumed triggers to identify when the app goes to sleep and wakes up, measure how much time passed, and then simulate that much time passing on waking up. This is why Construct doesn't have a "keep awake in background" option - for this type of purpose, it's unnecessary and wasteful.

  • The text is rendered by the browser and some browsers don't scale text smoothly. I think what happens depends on which browser you're using. IIRC I filed an issue with at least Safari for text scaling not being smooth, but nothing much has changed.

  • You do not have permission to view this post

    • Post link icon

    Please only post in English in this forum as per the Forum & Community guidelines.